6

我正在尝试更新用于语法高亮的 xml 文件,因此我想知道获取所有 Perl 内置函数列表的最简单方法是什么。

4

4 回答 4

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
...
于 2011-07-17T12:45:00.113 回答
5

查看源码中的toke.c文件perl

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

您会发现许多不会出现在perlfunc中的东西。但是,这取决于您要如何分割要着色的各种事物。

您还可以查看PPI、静态 Perl 解析器或现有的 Perl 语法荧光笔。

于 2011-07-17T17:53:18.603 回答
3

我会解析perldoc perlfunc(“Perl Functions by Category”部分)。

于 2011-07-17T09:37:00.280 回答
0

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

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

为我工作(但请注意,它并不完美)

于 2013-10-27T16:49:59.713 回答