For Programmers: Free Programming Magazines  


Home > Archive > PERL Modules > June 2006 > Text::Balanced to extract subs?









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Text::Balanced to extract subs?
ivowel@gmail.com

2006-06-17, 8:04 am


dear perl users: I want to write a function that extracts "ordinary"
subroutines from perl code. (an equivalent task is extracting all
macros from a latex file.) I am not trying to be too clever. let's
presume I can recognize subs because subs and only subs always start at
the first character of a line and are not anonymous. a sub is followed
by a name and can contain nested expressions.

I can do plain pattern matching to find the first occurance of the
first sub: '^sub [a-zA-Z]+'. but now I am stuck. I need to continue
on with a Text::Balanced expression right after, and after the
text::balanced is done, continue on with my regex search (\G).

this must be a very common problem. is Text::Balanced the right module
for the task? if so, can someone please point me to a simple example?

sincerely, /iaw

Ch Lamprecht

2006-06-17, 8:04 am

ivowel@gmail.com wrote:
> dear perl users: I want to write a function that extracts "ordinary"
> subroutines from perl code. (an equivalent task is extracting all
> macros from a latex file.) I am not trying to be too clever. let's
> presume I can recognize subs because subs and only subs always start at
> the first character of a line and are not anonymous. a sub is followed
> by a name and can contain nested expressions.
>
> I can do plain pattern matching to find the first occurance of the
> first sub: '^sub [a-zA-Z]+'. but now I am stuck. I need to continue


sub my_1st_sub_not_recognized {};
\w = a word character

Christoph




--

perl -e "print scalar reverse q/ed.enilno@ergn.l.hc/"
ivowel@gmail.com

2006-06-17, 8:04 am


Sorry, the pattern for a valid subname was just there for illustration.
I am stuck on how to extract multiple consecutive subroutines that
have nested parens:
# others
sub a { if (0==0) { print "hi"; } }
# more others
sub b{ if (1==0) { print "hi"; } }

regards,

/iaw

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com