У меня есть два значения:Построить абсолютное имя файла из файла и имя каталога
- имя текущей директории
- абсолютное или относительное имя файла
Мне нужно построить однозначную абсолютное filename (начиная с/и без каких-либо ../ и без ./), что соответствует доступу к этому файлу, когда каталог является текущим каталогом.
Мне нужно сделать это на Perl в Unix.
Я попытался use File::Path;
, но это не работает право (ошибка?):
perl -MPath::Class -e 'my $fileObj = Path::Class::File->new("/boot", "/xx");
print $fileObj->absolute, "\n";'
Выход:
/boot/xx
Но он должен печатать /xx
, потому что это абсолютный путь, и не должен зависеть от текущего каталога!
Вы код с помощью 'Путь :: Class' и' Путь :: Class :: File', но вы говорите, что вы используете 'File: : Путь ... это немного запутанно. [Path :: Class] (http://search.cpan.org/perldoc?Path%3A%3AClass) делает документ сам по себе как слой поверх 'File :: Path'. Я думаю, ваша проблема - GIGO: Garbage In, Garbage Out. Имя файла не должно содержать косой черты; когда это происходит, вы получаете то, что получаете. Имя файла создается путем добавления списка имен каталогов (один в вашем примере) к имени файла. –