in reply to Re^4: Please correct me in the above regular expression
in thread Please correct me in the above regular expression
You are numbering all abc's. There is no need to match surrounding characters. Note that the way I have rewritten your test cases removes all ambiguity concerning white space.
use strict; use warnings; use Test::More; my @cases = ( # Input Expected Description ["int abc;\n", "int abc_1;\n\nint abc_2;\n\n", 'line 1'], [".abc(abc);\n", ".abc_1(abc_1);\n\n.abc_2(abc_2);\n\n", 'line 2'], ); plan tests => scalar @cases; foreach my $case (@cases) { my $line = $case->[0]; my $out = ''; $out .= ($line =~ s/abc/abc_$_/gr) . "\n" for (1,2); is( $out, $case->[1], $case->[2] ); }
OUTPUT: 1..2 ok 1 - line 1 ok 2 - line 2
Bill
In Section
Seekers of Perl Wisdom