当前位置:  开发笔记 > 编程语言 > 正文

如何在使用模块时找到Perl加载的文件?

如何解决《如何在使用模块时找到Perl加载的文件?》经验,为你挑选了4个好方法。

在Perl中,当我这样做时use ;,系统会.pm@INC路径中的某个位置找到库的文件.

是否有可靠的方式来实际加载文件?



1> derobert..:

是的,%INC包含从中加载模块的完整路径.

例:

$ perl -M'Data::Dump qw(pp)' -e 'pp(\%INC)'
{
  "Data/Dump.pm"         => "/usr/share/perl5/Data/Dump.pm",
  "Exporter.pm"          => "/usr/share/perl/5.10/Exporter.pm",
  "List/Util.pm"         => "/usr/lib/perl/5.10/List/Util.pm",
  "Scalar/Util.pm"       => "/usr/lib/perl/5.10/Scalar/Util.pm",
  "XSLoader.pm"          => "/usr/lib/perl/5.10/XSLoader.pm",
  "overload.pm"          => "/usr/share/perl/5.10/overload.pm",
  "strict.pm"            => "/usr/share/perl/5.10/strict.pm",
  "vars.pm"              => "/usr/share/perl/5.10/vars.pm",
  "warnings.pm"          => "/usr/share/perl/5.10/warnings.pm",
  "warnings/register.pm" => "/usr/share/perl/5.10/warnings/register.pm",
}


如果您只想查看DBI :: Profile的位置,我建议:`perl -MDBI :: Profile -E'说$ INC {"DBI/Profile.pm"}'`输出/ usr/lib/perl5/DBI /Profile.pm在这里.注意-E和say是5.10特征; 对于旧的perl,您需要使用-e,打印并在最后添加\n.
perl -MData :: Dump = pp -e'pp(\%INC)'

2> skiphoppy..:

如果模块具有pod文档,并且如果可以保证PATH中的perldoc实用程序属于运行脚本的相同perl,则此命令通常会为您提供实际找到的文件:

perldoc -l ModuleName



3> 小智..:

perl -M'LWP'-e'使用Data :: Dumper; 打印Dumper \%INC'| grep LWP

这将列出磁盘上的LWP模块位置,并列出LWP中加载的模块.

      'LWP.pm' => '/usr/lib/perl5/5.10.0/LWP.pm',
      'LWP/Protocol.pm' => '/usr/lib/perl5/5.10.0/LWP/Protocol.pm',
      'LWP/UserAgent.pm' => '/usr/lib/perl5/5.10.0/LWP/UserAgent.pm',



4> brian d foy..:

要在查找%INC变量,它记录了它加载您加载的库文件名do,requireuse.有关详细信息,请参阅perlvar.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有