2011-07-17 13 views

risposta

9

Ecco una rapida implementazione dell'idea di 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,})/; 
} 

Dà elencare inclusi i parametri come questo:

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

Analizzerei perldoc perlfunc (la parte "Funzioni Perl per categoria").

+2

piuttosto analizzare pod/perlfunc.pod come un formato più regolare (e ha parser come Pod :: Semplice che puoi applicare all'attività) – MkV

+0

Molte delle cose che devi trovare non sono in perlfunc. –

+4

@brian d foy Ha chiesto 'funzioni built-in Perl'. Quali funzioni integrate non ci sono? – cnicutar

5

sguardo al file ditoke.c nella fonte perl:

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

Troverete molte delle cose che non verranno visualizzate in perlfunc. Tuttavia, ciò dipende da come si desidera segmentare le varie cose che si desidera colorare.

Si potrebbe anche guardare PPI, un parser Perl statico o gli evidenziatori di sintassi Perl esistenti.

0

Ho incontrato lo stesso problema solo ora, e

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

lavorato per me (ma, attenzione, non è perfetto)

Problemi correlati