将Perl的所有内置函数作为列表的最佳方法是什么?

时间:2011-07-17 09:32:39

标签: perl function built-in

我正在尝试更新xml文件以进行语法突出显示,因此我想知道获取所有Perl内置函数列表的最简单方法是什么。

4 个答案:

答案 0 :(得分:9)

以下是cnicutar想法的快速实现:

use Pod::Find qw(pod_where);

my $perlfunc_path = pod_where({ -inc => 1 }, 'perlfunc');

open my $in, "<", $perlfunc_path or die "$perlfunc_path: $!";
while(<$in>) {
    last if /=head2 Alphabetical/;
}

while(<$in>) {
    print "$1\n" if /=item (.{2,})/;
}

为您提供包含以下参数的列表:

-X FILEHANDLE
-X EXPR
-X DIRHANDLE
-X
abs VALUE
abs
...

答案 1 :(得分:5)

查看perl来源中的 toke.c 文件:

  $ perl -nE 'next unless /case KEY_(\S+):/; say $1' toke.c | sort | uniq

你会发现许多不会出现在 perlfunc 中的东西。但是,这取决于您希望如何分割您想要着色的各种内容。

您还可以查看PPI,一个静态Perl解析器或现有的Perl语法高亮显示器。

答案 2 :(得分:3)

我会解析perldoc perlfunc(“按类别划分的Perl函数”部分)。

答案 3 :(得分:0)

我刚才遇到了同样的问题,

egrep '^=item' /usr/lib/perl5/5.10.0/pod/perlfunc.pod | perl -anle '$F[1]=~s/\W//g; print $F[1]' | sort | uniq

为我工作(但是,要警告,这不是完美的)