当您转储阵列时:
use Data::Dumper;
@arr=('a','b','c');
print Dumper @arr;
你会得到这样的东西:
$VAR1 = 'a';
$VAR2 = 'b';
$VAR3 = 'c';
有可能得到这样的东西:
$VAR0 = 'a';
$VAR1 = 'b';
$VAR2 = 'c';
编辑:
到目前为止,我已经完成了这个单行:
perl -lane 'if ($_=~/VAR([0-9]+) = (.*)/) {print "VAR" . ($1-1) . "=" . $2} else {print $_}'
它用作后处理脚本,在 VAR 之后减少数字。但是正如你所看到的,当你有这样的元素时,它不会产生正确的输出:
VAR7=$VAR2->[1];
我可以以某种方式扩展这个单行吗?