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
wra...@kent.edu
Assistant Professor
Textual Editing and American Literature
Kent State University
--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to