2011-07-17 10 views

Odpowiedz

9

Oto szybkie wdrożenie idei cnicutar za:

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,})/; 
} 

Daje listy parametrów w tym tak:

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

Chciałbym parsować perldoc perlfunc (część "Funkcje Perla według kategorii").

+2

raczej analizować kapsułę/perlfunc.pod jako bardziej regularny formacie (i ma parsery takie jak Pod :: Simple, które można zastosować do zadania). – MkV

+0

Wiele rzeczy, które musisz znaleźć, nie znajduje się w perlfunc. –

+4

@ brian d foy Zapytał o 'wbudowane funkcje Perla'. Jakie wbudowane funkcje nie istnieją? – cnicutar

5

Spójrz na toke.c pliku w źródle perl:

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

Znajdziesz wiele rzeczy, które nie pojawią się w perlfunc. Jednak zależy to od tego, jak chcesz posegmentować różne rzeczy, które chcesz pokolorować.

Można również spojrzeć na PPI, statyczny analizator składni Perl lub istniejące znaczniki składni Perla.

0

wpadłem na tej samej kwestii właśnie teraz, a

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

pracował dla mnie (ale ostrzegamy, to nie jest idealne)

Powiązane problemy