1

我有以下代码

    #!/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
4

1 回答 1

2

我想通了。看起来我需要s/s([0-9])/s${prevjob[$1]}/;

$1代替\1

于 2013-06-25T23:33:36.393 回答