Text::Balanced to extract subs?

Text::Balanced to extract subs?

am 16.06.2006 04:35:43 von ivowel

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

Re: Text::Balanced to extract subs?

am 16.06.2006 06:26:58 von Ch Lamprecht

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/"

Re: Text::Balanced to extract subs?

am 16.06.2006 17:41:23 von ivowel

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