Perl:转义字符紧邻变量,在双引号内
Perl: escape characters immediately adjacent to variables, inside double quotes
我一直在尝试使用 perl 的函数 rename
来重命名大量文件。我遇到的问题是我的变量 my $oldname
是由变量、字符、变量等行的名称组成的,如 my $oldname = "$variable1CHARACTERS$variable2.txt";
我使用了多种选项来转义字符(单引号、撇号、斜杠和大量组合),但它永远无法正常工作,因此重命名失败。有没有人遇到过这个问题?我认为解决方案是通过更多的双引号,也许将 CHARACTERS 放在双引号下 - 但仍然没有找到有效的语法。任何提示将不胜感激。
与shell一样,您可以使用大括号来分隔变量名。
my $oldname = "${variable1}CHARACTERS${variable2}.txt";
大括号并不是消除歧义所必需的$variable2
(句点不允许出现在变量名中,因此它必须在那里结束)但是你可以使用它们只是为了对称。
在你有限的情况下,你也可以将字符串分开,然后加入它们:
my $oldname = join("", $variable1, "CHARACTERS", $variable2, ".txt");
我一直在尝试使用 perl 的函数 rename
来重命名大量文件。我遇到的问题是我的变量 my $oldname
是由变量、字符、变量等行的名称组成的,如 my $oldname = "$variable1CHARACTERS$variable2.txt";
我使用了多种选项来转义字符(单引号、撇号、斜杠和大量组合),但它永远无法正常工作,因此重命名失败。有没有人遇到过这个问题?我认为解决方案是通过更多的双引号,也许将 CHARACTERS 放在双引号下 - 但仍然没有找到有效的语法。任何提示将不胜感激。
与shell一样,您可以使用大括号来分隔变量名。
my $oldname = "${variable1}CHARACTERS${variable2}.txt";
大括号并不是消除歧义所必需的$variable2
(句点不允许出现在变量名中,因此它必须在那里结束)但是你可以使用它们只是为了对称。
在你有限的情况下,你也可以将字符串分开,然后加入它们:
my $oldname = join("", $variable1, "CHARACTERS", $variable2, ".txt");