Как мне преобразовать полный путь в относительный путь, используя perl? - PullRequest
13 голосов
/ 15 ноября 2011

У меня есть полный путь к файлу и полный путь к одному из его родительских каталогов в двух переменных в программе Perl.

Какой безопасный способ вычислить относительный путь файла относительно родительского каталога.Нужно работать на Windows и Unix.

Например

$filePath = "/full/path/to/my/file";
$parentPath = "/full";
$relativePath = ??? # should be "path/to/my/file"

Ответы [ 2 ]

23 голосов
/ 15 ноября 2011

Использование Файл :: Spec

Они имеют функцию abs2rel

my $relativePath = File::Spec->abs2rel ($filePath,  $parentPath);

Будет работать как в Windows, так и в Linux

9 голосов
/ 16 ноября 2011
use Path::Class;
my $full = file( "/full/path/to/my/file" );
my $relative = $full->relative( "/full" );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...