我在这里讨论在Perl中不设置语言环境,建议在OSX Yosemite 10.10.3中运行此perldoc perllocale
,但我收到错误:
Error while formatting with Pod::Perldoc::ToMan:
at /System/Library/Perl/5.18/Pod/Perldoc.pm line 1346.
at /usr/bin/perldoc5.18 line 11.
Got a 0-length file from /System/Library/Perl/5.18/pods/perllocale.pod via Pod::Perldoc::ToMan!?
at /usr/bin/perldoc5.18 line 11.
which perldoc
给/usr/bin/perldoc
所以正确的应该是。 echo $PATH
给
/usr/local/bin:/usr/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/masi/.cabal/bin
我注意到那里有一些文件夹两次,但可能的覆盖不应该是问题的原因。我的.bashrc
是空的,但.profile
刚刚export LANG=en_US.UTF-8
.
这个 Perldoc 错误是什么意思?
我在OSX Yosemite 10.10.3上遇到了完全相同的错误
bessarabov@bessarabov-osx:~$ perldoc perllocale
Error while formatting with Pod::Perldoc::ToMan:
at /System/Library/Perl/5.18/Pod/Perldoc.pm line 1346.
at /usr/bin/perldoc5.18 line 11.
Got a 0-length file from /System/Library/Perl/5.18/pods/perllocale.pod via Pod::Perldoc::ToMan!?
at /usr/bin/perldoc5.18 line 11.
bessarabov@bessarabov-osx:~$
命令perldoc -l perllocale
显示文件的路径:
bessarabov@bessarabov-osx:~$ perldoc -l perllocale
/System/Library/Perl/5.18/pods/perllocale.pod
bessarabov@bessarabov-osx:~$
该文件不为空,我已将其保存到 https://gist.github.com/bessarabov/20370992150a332dc0f0
OSX Yosemite 10.10.3 有 perldoc 版本 3.19:
bessarabov@bessarabov-osx:~$ perl -MPod::Perldoc -E 'say $Pod::Perldoc::VERSION'
3.19
bessarabov@bessarabov-osx:~$
您可以运行PERLDOCDEBUG=5 perldoc perllocale
以查看一些调试信息 - 这是日志 https://gist.github.com/bessarabov/6e09b4e491d5a00c6304,但它不是很有用。
我试图找出为什么perldoc失败。我没有确切的答案,但问题出在文件中的这部分代码/System/Library/Perl/5.18/Pod/Perldoc/ToMan.pm
:
while( $offset <= $length ) {
$self->debug( "Writing chunk $chunksn" ); $chunks++;
syswrite $writer, ${ $self->{_text_ref} }, $chunk_size, $offset
or $self->die( $! );
$offset += $chunk_size;
...
}
此循环的几个交互工作,但随后syswrite
死亡,$!
没有关于错误的信息。
我能够使用其他解析器阅读文档:
perldoc -MPod::Perldoc::ToText perllocale
解决此问题的另一种方法是更新到最新版本的 Pod::P erldoc — perldoc 3.25 可以很好地处理此文件。
猜测一下,我会说perllocale.pod文件是空的,它应该有pod格式的perllocale文档。
您可以在线阅读相同的文档,网址为 http://perldoc.perl.org/5.18.2/perllocale.html