我似乎在用旧版本的 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 版本?
谢谢你。