我有一个小的perl程序接受2个参数,一个是FROM
字符串,另一个是TO
字符串。然后,它会在用户输入的任何行上运行替换,并使用FROM
和TO
。我的问题是:如果TO
语句是一个反引号Perl双引号字符串文字本身,我如何阅读。
该计划:
while (<STDIN>) {
$_ =~ s/$ARGV[0]/$ARGV[1]/g;
print STDOUT $_;
}
exit(0);
示例参数:
./program.pl '([aeiou])([aeiou])' '$2$1'
用户输入的文字:
The rain in spain is always on the plain.
由于TO
字符串是deloted Perl双引号字符串文字本身,程序的输出应该是:
The rian in spian is always on the plian.
而是:
The r$2$1 in sp$2$1 is always on the pl$2$1n.
我如何得到表达式来评估$ARGV[1]
是否被引用Perl双引号字符串文字并执行它?
答案 0 :(得分:0)
以下是您想要的:
use String::Substitution qw( gsub_modify );
gsub_modify($_, $ARGV[0], $ARGV[1]);