我有以下代码
#!/bin/perl
$prevjob[1]= 'PREVJOB1';
$prevjob[2]= 'PREVJOB2';
$prevjob[3]= 'PREVJOB3';
$line[2]= '(s1&s3)|s2';
if($line[2]) {
#this will work for first replacement, but its not working,
$line[2]=~ s/s([0-9])/s${prevjob[\1]}/;
print $line[2];
}
我想使用标量中的数字作为索引,并用@ prevjob在该索引处的元素替换该数字。
我想替换s/s([0-9])/s${prevjob[\1]}/
我的预期输出是:
(sPREVJOB1&sPREVJOB3)|sPREVJOB2
答案 0 :(得分:2)
我想出来了。看起来我需要s/s([0-9])/s${prevjob[$1]}/;
$1
代替\1