3

使用命令从 Linux 命令行安装 Perl 模块cpan可以正常工作,例如:

$ cpan [Module]

完成后,我可以通过以下方式查看模块的文档:

$ perldoc [Module]

但是通过这样做cfengine,它只会自动编写cpan命令脚本(在shellcommands:列表中),模块被安装,但perldoc不适用于它:

$ perldoc Text::Histogram
No documentation found for "Text::Histogram".*

但是,调用:

$ man Text::Histogram

会工作得很好。

为此设置一个通用环境变量(例如perldoc手册页建议的)似乎不可行,因为我观察到.pm文件被放置在非常不同的地方。

对此有任何提示吗?

4

1 回答 1

3

perldoc 搜索 Perl 模块包含路径 ( @INC)。如果 perldoc 找不到,perl 也找不到。试试看perl -wle 'use The::Module'perl能不能加载。如果它可以找到它,那么奇怪的事情正在发生。

可能发生的情况是,如果您通过第三方程序安装了一个模块(即使它只是使用 cpan 客户端),它是否被安装到不同的位置和/或与您在命令行。造成这种情况的原因有很多,其中三个最有可能是...

  • 它有一个与PATH你不同的副本,并为不同的副本找到了不同cpanperl.
  • 它以不同方式配置cpan客户端以安装到不同的PATH.
  • cpan 被配置为安装在主目录下,并且它以不同的用户身份运行。

该模块也有可能没有文档。

您可以看到 perldoc 正在做什么来查找模块perldoc -D The::Module(在旧版本中可能是 -v)。

于 2012-03-03T20:59:17.437 回答