我试图找到 perl 模块,例如严格和警告,但我找不到它们...顺便说一句,我实际上使用的是 archlinux,我尝试使用
whereis
但它什么也没扔。
我试图找到 perl 模块,例如严格和警告,但我找不到它们...顺便说一句,我实际上使用的是 archlinux,我尝试使用
whereis
但它什么也没扔。
如果模块嵌入了 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
,它会返回所有模块的版本。
由于您使用的是 Linux 发行版,因此本机包管理器是最合适的工具。在这种情况下,强烈建议使用 pacman 来完成这样的任务:
pacman -Ql perl | egrep '(strict|warnings).pm'
%INC
散列保存已加载模块的磁盘位置,以包名称为键。您可以单步执行 的键%INC
并打印出关联的值。例如:
$ perl -MData::Dump -e 'print "$_: $INC{$_}\n" foreach keys %INC'
(我加载了 Data::Dump 以便确保至少有一个模块被拉入。您不必自己加载该特定模块。)
此外,该@INC
数组包含perl
搜索模块的包含路径,因此您可以随时执行以下操作:
$ perl -E 'say foreach @INC'
查找所有默认包含路径。