私は Perl の初心者で、関数を介して変数を入力および出力する必要があるいくつかの演習を行っています。グローバル変数を使用して同じスクリプトを作成し、それは機能しましたが、my を使用しようとしてすべてを厳密に設定した後、多くの問題に遭遇しました。私の構文はオフですか?それとももっと根本的なこと?どんな助けでも大歓迎です:
#!/usr/bin/perl -w
use warnings;
use strict;
use DBI;
use Getopt::Std;
getopt('s:');
my $opt_s;
my $search = $opt_s;
my @array = &function1();
my $arrayvalue = &function2();
&function1($search);
&function2(@array);
if (&function2(@array) != 0 {
print "no values found for '$search'","\n"};
sub function1 {
my search = $_[0];
our $dbh = DBI->connect("dbi:mysql:dbname=database, "user", "password")
or die $DBI::errstr;
my $sql = $dbh->selectall_arrayref("SELECT Player from Players_Sport where Sport like '$search'")
or die $DBI::errstr;
my @array = map { $_->[0] } @$sql;
$dbh->disconnect
or warn "Disconnection failed: $DBI::errstr\n";
return @array;
}
sub function2 {
my $arrayvalue=()
my @array = $_[0];
print join("\n", @array, "\n");
if(scalar (@array) == 0) {
$arrayvalue = -1;
}
else {$arrayvalue = 0;
};
return $arrayvalue;
}