我想使用Perl脚本A来生成和替换Perl脚本B中的数组。
脚本B最初包含的内容如下:
my @old_array = (value1, value2, etc);
脚本A包含类似的内容:
for ( $a = 0; $a < $nr_values; $a++ ) {
$list .= "$new_values[$a], ";
}
`perl -pi -e 's/^my \@old_array.*/my \@new_array \= \( $list \)\;/g' script_B.pl;`
但是,当我运行Perl脚本A
时对所有my
声明的变量
数组@
符号和名称未更改:仅更新值
请告知如何使用Perl正确替换数组?
答案 0 :(得分:0)
我找到了使用三反斜杠的正确解决方案:
perl -pi -e 's/^my \\\@temps.*/my \\\@temps \= \( NEW \)\;/g' modify.pl
;
这解决了我的正则表达式查找和替换问题。
对于那些试图帮助实质性评论的人,谢谢!对于那些坚持我没有提供足够信息,或者我的问题是由非上市代码引起的人,我发现你的回答非常不专业,并没有关注被问到的问题。