我在数组中有一个名为$ row [0]的元素,它包含这个绝对路径名:
/home/<username>/puppet/config/files/$HOSTGROUP/$TOOLNAME/$VERSION
我想用三个匹配的元素替换该路径中列出的三个变量中的每一个...
$row[3] (represents $HOSTGROUP)
$row[4] (represents $TOOLNAME)
$row[5] (represents $VERSION)
如何在Perl脚本中执行此操作?
答案 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}}