Perl File :: Найти путь к обратному слешу Windows - PullRequest
1 голос
/ 31 мая 2011

Есть ли простой способ автоматически заменить обратные слэши $ dir на прямые, потому что я знаю только один способ - вручную, и если путь слишком длинный, это довольно раздражает. Спасибо.

use strict; 
use warnings;
use File::Find;

my $dir = "E:\dir1\dir2\dir3\dir4\dir5";

find(\&temp, $dir);
sub temp {
    .....
}

Ответы [ 2 ]

2 голосов
/ 31 мая 2011

Не совсем уверен, что вы ищете, но достаточно простого регулярного выражения, чтобы заменить \ на /:

ETA: вам нужно будет поместить пути в одинарные кавычки, чтобы сохранить обратную косую черту, а затем заменить их (спасибо cjm за это):

$dir = 'E:\dir1\dir2\dir3\dir4\dir5';
$dir =~ s#\\#/#g;
1 голос
/ 31 мая 2011

А как насчет идеи несистемно-зависимого пути?В стандартном дистрибутиве perl есть модуль с именем File :: Spec .Посмотрите на этот код:

use strict;
use warnings;

use File::Spec;

my $path;
$path = File::Spec->catfile("dir1","dir2","dir3","dir4","dir5");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...