Your main problem is using $1. If you used strictures this would be a fatal error, stopping you treading on your own toes :)
use strict; use warnings;
my $label = 'owt';
while (my $line = <DATA>) {
if ($line =~ m/s_abc_in\(\d+\).*\s*<=\s*s_abc_out\(\d+\).*/){
for (1..6){
my $j = $_ + 1;
print "a_abc_in\_rrfa_$label($j) <= s_abc_out\_rrfa_$label($_);\
+n";
}
} else {
print $line;
}
}
__DATA__
.................................
s_abc_in(1450) <= s_abc_out(324); # this is my first match
an unmatched line
s_abc_in(1451) <= s_abc_out(1450);
unmatched line, as are the ...... lines
................................
Cheers, R.
Pereant, qui ante nos nostra dixerunt!
|