【发布时间】:2012-08-17 14:14:33
【问题描述】:
我尝试在 Perl 中替换文件全名的目录部分。 就像是: 在目录 'D:\Texts1' 中得到文件名 'D:\Texts1\text1',想用 'D:\Texts2' 替换它,然后文件名将是 'D:\Texts2\text1'。
我试试这个代码:
$filename = 'D:\Texts1\text1';
$i = 'D:\Texts1';
$o = 'D:\Texts2';
$filename =~ s'$i'$o'g;
而且没有生效。 $filename 不会改变。 我尝试使用类似的东西
$i = quotemeta('D:\Texts1');
但它也没有生效。
【问题讨论】:
-
谢谢大家!我的错误是我尝试一次对 $i 和 $o 使用 quotemeta。但只有 $i 才需要它。
-
其实单引号也是个问题——看我的回答。您可能在某个时候从单引号更改为另一个分隔符,这也有助于修复它。