perlin模块位于archlinux中的哪个位置

时间:2011-09-22 19:14:10

标签: perl perl-module archlinux

我试图找到perl模块,比如严格和警告,但我找不到它们......顺便说一下我实际上使用的是archlinux,我试过用

whereis

但它什么都没有。

4 个答案:

答案 0 :(得分:4)

如果模块嵌入了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 :(得分:1)

要查找单个模块:

perldoc -l warnings

所有模块都在@INC目录下:

perl -V

另请参阅:Find installed Perl modules matching a regular expression

答案 2 :(得分:1)

%INC哈希保存已加载模块的磁盘位置,由程序包名称键入。您可以单步执行%INC的键并打印出相关值。例如:

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

(我加载了Data :: Dump,以便至少可以拉入一个模块。您不必自己加载该特定模块。)

此外,@INC数组包含perl搜索模块的包含路径,因此您可以随时执行:

$ perl -E 'say foreach @INC'

查找所有默认包含路径。

答案 3 :(得分:1)

由于您使用的是Linux发行版,因此本机程序包管理器是最合适的工具。在这种情况下,强烈建议使用pacman执行此类任务:

pacman -Ql perl | egrep '(strict|warnings).pm'