我需要在其周期中评估($i + 1)
。或者调用带有返回值的子程序。
my $i = 0;
my @tags = qw/ something anything everything /;
until ( $i == scalar @tags ) {
$tags[$i] =~ s/(.+)/$1 ($i + 1)/;
$i++;
}
我刚才有一个想法:我可以在替换之前对其进行评估并将其保存到变量中,然后我可以插入变量,但它似乎非常不干净,我无法在反向引用变量上使用它。 / p>
答案 0 :(得分:2)
$tags[$i] =~ s/(.+)/"$1 " . ($i + 1)/e;
末尾的/e
修饰符意味着评估替换部分。见perldoc perlre
。请注意,替换必须是有效的Perl表达式。
附加文字可能更容易:
$tags[$i] .= " " . ($i + 1 );