我试图在命令行末尾添加一个参数,通过MySQL数据库运行搜索,然后列出结果或说什么都没找到。我试图通过将查询数据保存为哈希和数组来做到这些(这些是练习,我对PERL非常陌生,脚本和尝试学习)。但是,我无法弄清楚如何使用散列做同样的事情。我希望SQL查询完成,然后将输出写入散列,以免调用While函数。任何指导将不胜感激。将Perl SQL查询的输出保存为散列而不是数组
#!/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;
};
}
完美奏效,谢谢。 – user2361820 2013-05-10 04:54:46