誰かが私を助けてくれることを望んでいた古いバージョンの perl で私の perl スクリプトをコンパイルする際に問題が発生しているようです。私が最初に書いて問題なく perl ファイルをコンパイルしたシステムは perl v5.16.3 を使用しており、現在コンパイルして実行しようとしているシステムは perl v5.8.5 を使用しており、そこに問題があると思います。~~ の使用方法に関して、v5.10 で多くの変更が行われたことは知っています。~~ 演算子を実際に使用した最初のバージョンは v5.10 ですか?
以下は、構文エラーが発生しているコードです。
if (/$SEARCH/x ~~ @{$pids{$mPID}{$key}}){
これは私が得ているエラーです:
syntax error at /sysadm/shared/ftp_search.pl line 310, near "/$SEARCH/x ~"
syntax error at /sysadm/shared/ftp_search.pl line 310, near "})"
これは周囲のコードなので、何が起こっているのかをよりよく理解できます。
foreach my $mPID (keys %pids){
foreach my $key (keys %{$pids{$mPID}}){
if (/$SEARCH/x ~~ @{$pids{$mPID}{$key}}){
} else {
delete $pids{$mPID}{$key};
}
}
}
基本的に、ハッシュのハッシュがあり、基本的にステートメントが一致しない場合は、ハッシュから削除されます。サーバー上の perl をアップグレードしようとしていますが、まだ承認を得ようとしています。これは、使用されている perl バージョンが原因であると想定して正しいですか?
ありがとうございました。