我是perl的新手。无论如何,我试图调试自己。但是我无法钉住它
语法错误是
Bareword found where operator expected at D:\DevelopmentLab\softwares\sc-master\sc.pl line 468, near "s%/%_%gr"
syntax error at D:\DevelopmentLab\softwares\sc-master\sc.pl line 468, near "s%/%_%gr"
Execution of D:\DevelopmentLab\softwares\sc-master\sc.pl aborted due to compilation errors.
代码是
sub getBackupFileName {
my ($containerName, $volume) = @_;
my $backupFileName = $volume =~ s%/%_%gr;
return "${containerName}_${backupFileName}.tar";
}
我们将不胜感激。
答案 0 :(得分:9)
在/r
中的s/.../.../
选项已在Perl 5.14(2011年)中添加。如果您使用的是较早版本,则您的代码将无效。我没有可供测试的早期版本,因此我无法确定它是否会给出您所看到的错误消息。
使它在Perl的早期版本上运行的最简单的解决方法是:
sub getBackupFileName {
my ($containerName, $volume) = @_;
(my $backupFileName = $volume) =~ s%/%_%g;
return "${containerName}_${backupFileName}.tar";
}