今天在写Perl脚本时,每次用正则表达式替换的内容都有可能不一样,于是,我就需要动态生成一个正则表达式。

例如,我这次的正则表达式可能是
^\w(3) \d\d
下次的表达式可能就是
^\d\d w(3)

于是我用if elsif语句根据情况选择不同的表达式,即
$express = qr/^\w(3) \d\d/
或是
$express = qr/^\d\d w(3)/

这样,我就只要一个语句$line =~ s/$express/$input_content/;就可以动态处理了。

在这里,关键是用qr这个操作符。