Perl:紧跟变量的转义字符,在双引号内

时间:2016-02-10 12:02:50

标签: perl escaping rename double-quotes

我一直在尝试使用perl的函数rename来重命名大量文件。我遇到的问题是我的变量my $oldname是由变量,字符和变量的名称组成的,如my $oldname = "$variable1CHARACTERS$variable2.txt";

我使用了很多选项来逃避字符(单引号,撇号,斜线和组合的负载),但它从不正常工作,因此重命名失败。有没有人遇到过这个问题?我认为解决方案是通过更多双引号,也许将CHARACTERS置于双引号下 - 但仍然没有找到有效的语法。任何提示都将不胜感激。

1 个答案:

答案 0 :(得分:2)

与shell类似,您可以使用大括号来分隔变量名称。

my $oldname = "${variable1}CHARACTERS${variable2}.txt";

在这里消除括号$variable2并不是绝对必要的(变量名中不允许这段时间,所以它必须在那里结束),但你可以只使用它们来对称。

在您的有限场景中,您还可以将字符串分开,然后加入它们:

my $oldname = join("", $variable1, "CHARACTERS", $variable2, ".txt");