生まれたばかりの Perl 開発者です。私は頭を悩ませ、これを理解しようとしてオンラインで検索してきました... 憤慨して、私は明確さを求めてあなたに来ました.
残りが機能しているため、次のコードがあります(関連する部分のみが残っています):
my @arrMissingTids;
@arrMissingTids = %hshTids;
my $missingtid;
foreach $missingtid (@arrMissingTids) {
print "$missingtid\n";
}
これはうまく機能し、配列に入れたい値を返します。
500000246,500000235,500000185,500000237,500000227,500000252
ただし、これをサブルーチンに渡して変数名に含めると、上記のリストではなく、番号 1 のみが提供されます。そのためのコードは次のとおりです。
myqry(@arrMissingTids);
sub myqry($) {
my $missingtids = @_;
$sql = "select
i.tid i_tid, i.name i_name
from
instrument i
where i.tid in ($missingtids)";
print "$sql/n";
}
$sql を印刷すると、次のように返されます。
Select i.tid i_tid, i.name i_name from instrument i where i.tid in (1)
次を返したいとき:
Select i.tid i_tid, i.name i_name from instrument i where i.tid in (500000246,500000235,500000185,500000237,500000227,500000252)
正しい方向への指針を事前にありがとう!