http://www.perlmonks.org?node_id=11130053


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