Как преобразовать полный путь в относительный путь с помощью perl?

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

Что такое безопасный способ вычисления относительного пути файла относительно родительского каталога. Нужно работать с окнами и unix.

например.

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

Ответ 1

Используйте Файл:: Spec

У них есть функция abs2rel

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

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

Ответ 2

use Path::Class;
my $full = file( "/full/path/to/my/file" );
my $relative = $full->relative( "/full" );