如何用同一个数组中的另一个元素替换数组元素中的值?

时间:2017-07-28 21:43:47

标签: arrays perl

我在数组中有一个名为$ row [0]的元素,它包含这个绝对路径名:

/home/<username>/puppet/config/files/$HOSTGROUP/$TOOLNAME/$VERSION

我想用三个匹配的元素替换该路径中列出的三个变量中的每一个...

$row[3]      (represents $HOSTGROUP)
$row[4]      (represents $TOOLNAME)
$row[5]      (represents $VERSION)

如何在Perl脚本中执行此操作?

1 个答案:

答案 0 :(得分:2)

my %repl = (
   HOSTGROUP => $row[3],
   TOOLNAME  => $row[4],
   VERSION   => $row[5],
);

$row[0] =~ s{(\$(\w+))}{
   if (exists($repl{$2})) {
      $repl{$2}
   } else {
      warn("Unrecognized var $2\n");
      $1
   }
}eg;

{{1}}