我正在尝试编写一个简单的 perl 脚本来将给定的正则表达式应用于文件名等,并且我无法将正则表达式作为参数传递到脚本中。
我想做的是这样的:
> myscript 's/hi/bye/i' hi.h
bye.h
>
我已经制作了这段代码
#!/utils/bin/perl -w
use strict;
use warnings;
my $n_args = $#ARGV + 1;
my $regex = $ARGV[0];
for(my $i=1; $i<$n_args; $i++) {
my $file = $ARGV[$i];
$file =~ $regex;
print "OUTPUT: $file\n";
}
我不能使用 qr,因为它显然不能用于替换正则表达式(尽管我的来源是论坛帖子,所以我很高兴被证明是错误的)。
我宁愿避免将这两个部分作为单独的字符串传递并在 perl 脚本中手动执行正则表达式。
是否可以将正则表达式作为这样的参数传递,如果可以,最好的方法是什么?