我正在尝试在命令行末尾添加一个参数,通过 MySQL 数据库运行该搜索,然后列出结果或说什么也没找到。我试图通过将查询数据保存为散列和数组来做到这一点(这些是练习,我对 PERL 和脚本非常陌生,并试图学习)。但是,我不知道如何用哈希做同样的事情。我确实希望 SQL 查询完成,然后将输出写入哈希,以免调用 While 函数。任何指导将不胜感激。
#!/usr/bin/perl -w
use warnings;
use DBI;
use Getopt::Std;
&function1;
&function2;
if ($arrayvalue != 0) {
print "No values found for '$search'"."\n"};
sub function1 {
getopt('s:');
$dbh = DBI->connect("dbi:mysql:dbname=database", "root", "password")
or die $DBI::errstr;
$search = $opt_s;
$sql = $dbh->selectall_arrayref(SELECT Player from Players_Sport where Sport like '$search'")
or die $DBI::errstr;
@array = map { $_->[0] } @$sql;
$dbh->disconnect
or warn "Disconnection failed": $DBI::errstr\n";
}
sub function2 {
@array;
$arrayvalue=();
print join("\n", @array, "\n");
if(scalar (@array) == 0) {
$arrayvalue = -1
}
else {$arrayvalue = 0;
};
}