是否有一种简单的方法来自动替换$ dir反斜杠与向前的,因为我知道的唯一方法是手动,如果路径太长是相当恼人的。 谢谢。Perl文件::查找Windows反斜杠目录路径
use strict;
use warnings;
use File::Find;
my $dir = "E:\dir1\dir2\dir3\dir4\dir5";
find(\&temp, $dir);
sub temp {
.....
}
是否有一种简单的方法来自动替换$ dir反斜杠与向前的,因为我知道的唯一方法是手动,如果路径太长是相当恼人的。 谢谢。Perl文件::查找Windows反斜杠目录路径
use strict;
use warnings;
use File::Find;
my $dir = "E:\dir1\dir2\dir3\dir4\dir5";
find(\&temp, $dir);
sub temp {
.....
}
不太清楚你所追求的,但一个简单的正则表达式将足以取代\
与/
:
埃塔:你将不得不放置在单引号的路径保存反斜杠,然后更换他们(感谢cjm指出):
$dir = 'E:\dir1\dir2\dir3\dir4\dir5';
$dir =~ s#\\#/#g;
那么非系统相关路径的想法呢?在标准的perl发行版中有一个名为File::Spec的模块。看看这段代码:
use strict;
use warnings;
use File::Spec;
my $path;
$path = File::Spec->catfile("dir1","dir2","dir3","dir4","dir5");
在Windows上,这将使用反斜杠,这是OP不希望的。 – runrig 2011-05-31 22:49:19
我试过之前,正则表达式不起作用。通常我会复制粘贴目录路径并用反向手动替换反斜杠,我正在寻找一种可以自动执行的方法。 – thebourneid 2011-05-31 18:03:48
当然,它的工作原理。也许你没有逃过反斜杠?你也可以使用'tr#\\#/#'。 – TLP 2011-05-31 18:36:06
更可能的是,他在字符串上使用了双引号(如上面的代码),所以字符串实际上并没有反斜杠。单引号可以更容易地包含文字反斜杠。 – cjm 2011-05-31 19:02:58