perldoc错误:没有文档文件

时间:2016-03-15 20:29:52

标签: perl

我通常使用POD语法记录我的perl代码,通常我可以使用:

来阅读文档
perldoc myscript.pl

其中myscript.pl是我用POD编写的perl脚本。

例如,如果 myscript.pl 包含:

#!/usr/bin/perl

use warnings;
use strict;

print 'hello world';

=head1 NAME

My Script name

=head1 DESCRIPTION

Description of My Script

=cut

并执行: perldoc myscript.pl 我得到了这个:

MYSCRIPT(1)           User Contributed Perl Documentation          MYSCRIPT(1)



NAME
       My Script name

DESCRIPTION
       Description of My Script



perl v5.18.2                      2016-03-15                       MYSCRIPT(1)

现在我发现在某些系统中出现以下错误:

$ perldoc myscript.pl
No documentation found for "myscript.pl".

任何人都知道为什么会这样?可能是一个缺少的模块或软件包?还有什么吗?

2 个答案:

答案 0 :(得分:1)

如果您查阅perldoc本身的手册页;你读到man perldoc

 "perldoc" also searches directories specified by the 
 "PERL5LIB" (or "PERLLIB" if "PERL5LIB" is not defined) and
 "PATH" environment variables.  (The latter is so that embedded 
 pods for executables, such as "perldoc" itself,are available.)

因此,您可以查看找到模块库的常用位置,以及 $ PATH 环境变量中指定的目录。后者可能会出人意料,但正如手册页所解释的那样,在本土脚本中如何检查POD。

你的问题实际上取决于你的环境,所以我不能说任何权威,但我敢打赌,在某些地方(即某些机器)你的 $ PATH 包括 &#34;。&#34; - 当前目录 - 为方便起见,但在其他机器上,&#34;。&#34; 不包含在 $ PATH < / strong>出于安全考虑。

如果不这样做,您可以使用 -D CLI选项获取perldoc在哪里寻找POD的运行评论:

$ perldoc -D myscript.pl
Ending switch processing.  Args are [myscript.pl] with 0 errors.
Pagers: /usr/bin/sensible-pagermorelesspgviewcat/usr/bin/perldoc => Pod::Perldoc v3.23

Formatter class Pod::Perldoc::ToTerm version 3.23 successfully loaded!
Will format with the class Pod::Perldoc::ToTerm
Searching for myscript.pl
Looking for myscript.pl in /usr/bin /etc/perl /usr/local/lib/x86_64-linux-gn
u/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/x86_64-linux-gnu/perl5/5.20
/usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20
/usr/local/lib/site_perl . /opt/perl6/share/perl6/site/bin /opt/perl6/bin
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
No documentation found for "myscript.pl".
$

我故意选择&#34; myscript.pl&#34;因为我没有这样的剧本。你可以清楚地看到它到处都是 - 这应该可以揭示问题所在。最后,最后,您可以使用-F明确说明要从POD中取出的文件 - 这可用于查看问题是否是文件本身中的POD:perldoc -F ./myscript.pl

答案 1 :(得分:0)

对于那些偶然发现这个问题的人(例如我):

pod2man ./myscript.pl | groff -man -T utf8

...也许。如果想要所有光荣的手册页格式。否则,也许pod2text