Где находятся модули Perl, расположенные в archlinux - PullRequest
0 голосов
/ 22 сентября 2011

Я пытаюсь найти модули Perl, такие как строгие и предупреждения, но я не могу их найти ... Кстати, я на самом деле использую archlinux, я пытался использовать

whereis

но ничего не выбрасывает.

Ответы [ 4 ]

4 голосов
/ 22 сентября 2011

Если в модуль встроена документация POD (что и большинство), его местоположение будет отображаться:

perldoc -l Some::Module   (Lowercase "L" for "location")

В противном случае вы можете использовать

perl -E'use Some::Module; say $INC{"Some/Module.pm"};'

может быть интересно определить все места, в которых ваш Perl ищет модули.Если это так, посмотрите на содержимое @INC.Вы можете использовать

perl -V                 (Uppercase "V")

или

perl -E'say for @INC;'

Также вас может заинтересовать Devel :: Modlist .Далее будет показан путь ко всем модулям, используемым (прямо или косвенно) скриптом или модулем:

perl -d:Modlist=path some_script.pl

perl -d:Modlist=path -e'use Some::Module;'

Без =path, он возвращает версии всех модулей.

1 голос
/ 30 января 2012

Поскольку вы используете дистрибутив Linux, нативный менеджер пакетов является наиболее подходящим инструментом.В этом случае настоятельно рекомендуется использовать pacman для такой задачи:

pacman -Ql perl | egrep '(strict|warnings).pm'
1 голос
/ 22 сентября 2011

Хэш %INC хранит расположение загруженных модулей на диске, обозначенное именем пакета.Вы можете пройтись по клавишам %INC и распечатать соответствующее значение.Например:

$ perl -MData::Dump -e 'print "$_: $INC{$_}\n" foreach keys %INC'

(Я загрузил Data :: Dump, чтобы наверняка был подключен хотя бы один модуль. Вам не нужно загружать этот модуль самостоятельно.)

Кроме того, массив @INC содержит пути включения, в которых perl выполняет поиск модулей, поэтому вы всегда можете сделать следующее:

$ perl -E 'say foreach @INC'

Чтобы найти все пути включения по умолчанию.

1 голос
/ 22 сентября 2011

Чтобы найти отдельный модуль:

perldoc -l warnings

Все модули находятся в каталогах @INC:

perl -V

См. Также: Поиск установленных модулей Perl, соответствующих регулярному выражению

...