I am using regular expressions to alter a text file. Where my original file has
three spaces to start a paragraph, I want to replace each instance of three
spaces with a bracketed paragraph number, with a counter for paragraph numbers,
<pgf 1>, <pgf 2>, <pgf 3> etc. The PERL program that I'm using is modeled on
the answer to chapter 9, question 3 in the Learning Perl book (4th ed.).
The WHILE loop that I've crafted is like this:
while (<IN>) {
chomp;
s/\ \ \ /\<pgf\ (?{my $para_num = 1; $para_num++;){print
"$para_num";}})\>/gi; # Replace three spaces with <pgf XX>
print OUT "$_\n";
}
I'm trying to embed the PERL code based on the PERL tutorial
(http://perldoc.perl.org/perlretut.html#A-bit-of-magic%3a-executing-Perl-code-in-a-regular-expression>,
which is noted as an experimental feature. But it doesn't work (using MAC
OSX). The output in my text file is "<pgf (?{my = 1; ++;){print "";}})" at
start of each paragraph.
Is there a way to do this with AUTO-INCREMENT variable and a FOR loop outside
the regular expression in which the value is inserted inside the regular
expression? My earlier attempts to do it that way always resulted in no change
in the value, just <pgf 1> on every paragraph time.
Thanks,
Wesley Raabe
[email protected]
Assistant Professor
Textual Editing and American Literature
Kent State University
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/