Как вернуть абсолютные пути к файлам с помощью Perl glob? - PullRequest
2 голосов
/ 22 февраля 2011

У меня есть некоторый Perl-код, который выполняет операцию с файлом.

$file1 = @ARGV[0];
@res1 = glob "$file1*";

Я хочу, чтобы при перетаскивании файлов отражались все абсолютные пути, а не только имена файлов, которые в настоящее время используются в моем коде.

например. когда я делаю glob "* .pdf", мне нужно, чтобы абсолютные пути файлов pdf были сопоставлены и возвращены моей переменной массива glob.

Я попытался с помощью модуля использовать File :: Basename; но это, кажется, используется для анализа пути к файлу в каталог, имя файла, суффикс.

Как мне получить этот эффект.

спасибо,

-AD.

Ответы [ 2 ]

9 голосов
/ 22 февраля 2011

Вы хотите использовать основной модуль Cwd, чтобы получить полный путь относительно вашего текущего рабочего каталога.

use Cwd;
@res1 = map { Cwd::abs_path($_) } glob "$file1*";
3 голосов
/ 22 февраля 2011

Вы хотите использовать стандартный модуль File::Spec. У него есть саб, rel2abs(), который именно то, что вы хотите. Смотрите perldoc File::Spec для деталей. Также см. perldoc perlmodlib для списка стандартных модулей и прагматики, которые устанавливаются вместе с Perl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...