Perl支持替换表达式

时间:2018-04-01 01:56:36

标签: regex perl replace

我有一个小的perl程序接受2个参数,一个是FROM字符串,另一个是TO字符串。然后,它会在用户输入的任何行上运行替换,并使用FROMTO。我的问题是:如果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双引号字符串文字并执行它?

1 个答案:

答案 0 :(得分:0)

以下是您想要的:

use String::Substitution qw( gsub_modify );

gsub_modify($_, $ARGV[0], $ARGV[1]);