[Israel.pm] Sophisticated text processing tools
Eitan Schuler
Eitan.schuler at exlibris.co.il
Sun Feb 8 05:40:32 PST 2004
Jason,
I would probably use regex to do this,
use math-time pattern interpolation (??{CODE})
use positive lookahead (?=PATTERN)
use negative lookahead (?!PATTERN)
use positive lookbehind (?<=PATTERN)
and negative lookbehind (?<!PATTERN)
These lookarounds can be also complex.
I would not hesitate to scan the file a couple of times if needed.
Eitan
-----Original Message-----
From: Jason Elbaum [mailto:Jason.Elbaum at motorola.com]
Sent: Sunday, February 08, 2004 3:15 PM
To: Perl in Israel
Subject: [Israel.pm] Sophisticated text processing tools
I have some complex text processing tasks I'd like to do with Perl, and
I'm wondering whether there are any well-known techniques or modules
which would help.
I'd like to make some automated modifications to source code files: read
a file, make some changes, write it back under a modified name. However,
the changes are complex, and I'm looking for a tool more flexible than
regular expressions.
For example, I'd like to be able to 1) find the next place in the file
which may need to be modified, 2) analyze the area around it to
determine what to change and how, 3) make the changes, and then 4)
continue scanning the file from that point.
I might be searching for a variable of a certain name or type, and then
changing the code which uses it. But the code which uses it might appear
a line or two before the variable name. So I want to find the point,
then analyze the area around it.
Can regexps be made to return a string position indicator, or to start
from a given string position? Should I read the file directly in chunks,
keeping track of the file position? Are there other options I'm not
thinking of?
Thanks,
Jason Elbaum
_______________________________________________
Perl mailing list
Perl at perl.org.il
http://www.perl.org.il/mailman/listinfo/perl
YAPC::Israel::2004
http://www.perl.org.il/YAPC/2004/
More information about the Perl
mailing list