簡體   English   中英

將所有 Perl 的內置函數作為列表的最佳方法是什么?

[英]What's the best way to get all Perl's builtin-functions as a list?

我正在嘗試更新用於語法突出顯示的 xml 文件,因此我想知道獲取所有 Perl 內置函數列表的最簡單方法是什么。

這是 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
...

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

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

您會發現許多不會出現在perlfunc中的東西。 但是,這取決於您要如何分割要着色的各種事物。

您還可以查看PPI 、 static Perl 解析器或現有的 Perl 語法熒光筆。

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

我剛才遇到了同樣的問題,並且

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

為我工作(但請注意,它並不完美)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM