标签: perldoc

如何在Pod和perldoc中使用Unicode字符?

我需要在perl文档中使用utf-8字符.如果我使用:

perldoc MyMod.pm
Run Code Online (Sandbox Code Playgroud)

我看到奇怪的人物.如果我使用:

pod2text MyMod.pm
Run Code Online (Sandbox Code Playgroud)

一切都好.

我使用Ubuntu/Debian.

$ locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=de_DE.UTF-8
Run Code Online (Sandbox Code Playgroud)

是否有关于在Pod中使用特殊字符的方法?

这是一个使用德国变音符号"Just a Test:äöüßÄÖ"的小例子:

$ perldoc perl/MyMod.pm
<standard input>:72: warning: can't find character with input code 159
<standard input>:72: warning: can't find character with input code 150
MyMod(3)              User Contributed Perl Documentation             MyMod(3)

NAME
        MyMod.pm - Just a Test: äöüÃÃÃ

perl v5.10.0                      2008-10-16                          MyMod(3)
Run Code Online (Sandbox Code Playgroud)

documentation unicode perl perldoc internationalization

21
推荐指数
2
解决办法
2377
查看次数

记录perl代码真的没有比POD更好的方法吗?

我很长一段时间都是Perl程序员,但我在POD中的文档总是有问题.

当我在代码中使用POD注释时,代码很难阅读.当我在文件末尾使用POD注释时,存在文档与代码不同步的危险.

我想念一个类似于Java的文档样式.

/**
 * @description
 * ...
 */
Run Code Online (Sandbox Code Playgroud)

我寻找更简单,更直观的文档样式.有这样的事吗?

perl perldoc pod

14
推荐指数
3
解决办法
1594
查看次数

为什么perldoc将'明斯特'评为'明斯特'

我有一个简单的POD文本文件:

$ cat test.pod 
=encoding UTF-8

Münster
Run Code Online (Sandbox Code Playgroud)

它按照UTF-8编码,根据文件的这个文字十六进制转储:

00000000  3d 65 6e 63 6f 64 69 6e  67 20 55 54 46 2d 38 0a  |=encoding UTF-8.|
00000010  0a 4d c3 bc 6e 73 74 65  72 0a                    |.M..nster.|
0000001a
Run Code Online (Sandbox Code Playgroud)

"ü"被编码为两个字节C3和BC.

但是,当我perldoc在文件上运行时,它将我可爱的格式化UTF-8字符转换为ASCII.

更重要的是,它正确地处理了将"ü"表示为"ue"的德语惯例.

$ perldoc test.pod | cat
TEST(1)               User Contributed Perl Documentation              TEST(1)

Muenster

perl v5.16.3                      2014-06-10                           TEST(1)
Run Code Online (Sandbox Code Playgroud)

它为什么这样做?

是否有一个额外的声明我可以放入我的文件以阻止它发生?


经过额外的调查后,App::perlbrew我发现不同之处在于拥有特定版本的Pod :: Perldoc.

perl-5.10.1    3.14_04    Muenster
perl-5.12.5    3.15_02    Muenster
perl-5.14.4    3.15_04    Muenster
perl-5.16.2    3.17       Münster …
Run Code Online (Sandbox Code Playgroud)

perl perldoc utf-8 perl-pod

12
推荐指数
1
解决办法
160
查看次数

如何在Perl代码中简明地记录方法?

我赞成一种文字编程风格,在他们记录的代码旁边有POD注释.不幸的是,这膨胀了代码,这不是非常Perlish ;-)我现在能找到的最好的方法是使用Dist :: ZillaPod :: Weaver一样:

package Foo;
#ABSTRACT: Foobar helper module for Foos

=method foo ( $bar, $doz )

Lorem ipsum hopladi and hoplada.

=cut

sub foo {
   ...
}
Run Code Online (Sandbox Code Playgroud)

人们可能会争论删除空行,但这也会降低可读性.有没有办法写更简洁,没有任何重复和不必要的语法,如下所示:

package Foo;
#ABSTRACT: Foobar helper module for Foos

#METHOD: Lorem ipsum hopladi and hoplada.
sub foo { # $bar, $doz
   ...
}
Run Code Online (Sandbox Code Playgroud)

并将此扩展到完整的POD:

=head1 NAME 

Foo - Foobar helper module for Foos

=head1 METHODS

=head2 foo ( $bar, $doz )

Lorem ipsum hopladi and …
Run Code Online (Sandbox Code Playgroud)

perl perldoc pod dist-zilla

6
推荐指数
1
解决办法
1028
查看次数

为什么perldoc会在这里失败?

下载了ActiveState Perl V5.22.3(试过V5.24,结果相同),我无法运行perldoc!perldoc以'无效参数 - -R'响应.

这是我的命令窗口:

使用此

我没有运行脚本的问题 - 只是perldoc.

在此先感谢您的任何建议.

perl perldoc

6
推荐指数
1
解决办法
136
查看次数

它在文档中的哪个位置说测试readdir的定义性?

另请参阅:readdir的"0"如何在while条件下不是false?.(不重复;只是密切相关.)


它在文档中的哪个位置说测试readdir的定义性?例如,这段代码

#!/usr/bin/perl

use strict;
use warnings;

opendir my $dir, "/tmp" or die "$!";

while (my $file = readdir($dir)) {
        print "$file\n";
}
closedir $dir;
Run Code Online (Sandbox Code Playgroud)

当运行B :: Deparse时:

use warnings;
use strict 'refs';
die "$!" unless opendir my $dir, '/tmp';
while (defined(my $file = readdir $dir)) {
    do {
        print "$file\n"
    };
}
z.pl syntax OK
Run Code Online (Sandbox Code Playgroud)

我期待这种行为,但我找不到它的指定位置.在perlopI/O运算符部分,它说

以下行是等效的:

     while (defined($_ = <STDIN>)) { print; }
     while ($_ = …

perl perldoc

5
推荐指数
1
解决办法
203
查看次数

Vim JSDoc,PHPDoc,JavaDoc,RDoc信息

这是交易,

如果您使用过Aptana,Eclipse甚至Microsoft Expression Web编辑器,那么您已经看到它们具有Balloon TextIntellisense弹出窗口,其中显示了内置和自定义对象,方法等的提示/信息.

他们通过JSDoc,PHPDoc,JavaDoc,RDoc等获取信息.

我想在Vim中获得这些功能,也可以实现为omnicompletion,因为Mac/GVim也支持气球文本.

vim perldoc phpdoc rdoc jsdoc

5
推荐指数
1
解决办法
1415
查看次数

在perldoc中正确渲染撇号

我无法弄清楚如何在我的Perl文档中正确显示撇号.例如,文本'test'显示为âtestâ.

  • E<39> 也呈现为 â
    • I<'>
    • S<'>
    • E<apos>
  • C<'>呈现为"'"(显然终端不是问题)
  • F<'> 呈现为下划线 â

我也尝试运行perldoc-T,-n nroff-n troff但没有了作用.运行-t固定的撇号问题,但也杀死所有其他文本属性.

我已经忍受了一段时间,但它真的开始让我恼火.如何才能正确显示它们?

perl perldoc pod apostrophe

5
推荐指数
1
解决办法
222
查看次数

如何使用perldoc查找%ENV变量?

我从阅读perldoc perlvar中发现,大约有一千行是对%ENV的帮助.有没有办法从命令行直接找到它?

在我的Windows机器上,我尝试了以下内容

perldoc ENV
perldoc %ENV
perldoc %%ENV
perldoc -r ENV (returns info about Use Env)
perldoc -r %ENV
perldoc -r %%%ENV
perldoc -r %%%%ENV (says No documentation found for "%ENV")
Run Code Online (Sandbox Code Playgroud)

实际上没有返回有关%ENV变量的信息.

我如何使用perldoc来了解%ENV,如果我不想通过成千上万的线进行眼睛grep?

我尝试了建议的"perldoc perlvar",然后键入/%ENV,但没有任何反应.

perl -v: This is perl, v5.8.0 built for MSWin32-x86-multi-thread
Run Code Online (Sandbox Code Playgroud)

虽然我已经询问了%ENV,但这也适用于任何一般术语,因此在下一次我不知道哪个部分时,知道%ENV在perlvar中这个例子将无法帮助我.

有没有办法让perldoc转储所有东西(呃)我可以grep输出?

perl perldoc

4
推荐指数
1
解决办法
1110
查看次数

如何在 Perl POD 中记录参数

我有这个 POD:

=head1 My code

=head2 check

Checks something. 

Parameters:

=over 8

=item what to check.

=back

=cut
Run Code Online (Sandbox Code Playgroud)

podchecker不抱怨。perldoc显示这个:

My code
  check
    Checks something.

    Parameters:

    what to check.
Run Code Online (Sandbox Code Playgroud)

我希望“检查内容”行进一步缩进。

我需要如何更改我的 POD 以显示缩进的参数?有没有比=items更好的方法来做到这一点?

format perl perldoc indentation perl-pod

4
推荐指数
1
解决办法
111
查看次数