コマンド ラインの末尾に引数を追加し、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;
};
}