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