2009-10-24 6 views
1

perl -MO = Concise, myprog.pl -execComment est-ce que je peux imprimer l'arbre de syntaxe de toutes les fonctions dans un programme de Perl?

devrait le faire, mais elle imprime uniquement la syntaxe des lignes qui sont en dehors des procédures, et le paquet principal lui-même. Il n'imprime pas l'arbre de syntaxe des paquets et des fonctions utilisés dans myprog et importés. Quelqu'un pourrait me dire comment dire "B :: Concise" pour imprimer toutes les fonctions dans myprog.pl.

Répondre

4

Des documentation:

Arguments qui ne commencent pas par un trait d'union sont prises pour être les noms des sous-routines pour rendre; si aucune de ces fonctions n'est spécifiée, le corps principal du programme (en dehors de tout sous-programme, et ne comprenant pas les fichiers use'd ou require'd) est rendu.

Donc, pour entrer sous-programme mysub(), ainsi que d'imprimer l'arbre de syntaxe du paquet principal lui-même, utilisez perl -MO=Concise,-exec,-main,mysub myprog.pl. Il n'y a pas d'option qui signifie "tous les sous-marins" - vous devez spécifier chacun explicitement par nom.