This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #45667] Apply tests from #119125 in reverse
authorFather Chrysostomos <sprout@cpan.org>
Tue, 13 Aug 2013 03:07:33 +0000 (20:07 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Tue, 13 Aug 2013 03:07:33 +0000 (20:07 -0700)
Ticket #119125 represents the breakage caused by c30fc27b4df65a, which
fixed #45667 (/[#]$not_interpolated/x; a regression from 5.000) as a
side-effect of fixing /[#](?{this is not a code block})/x (a regres-
sion from 5.16.0).

It was backported to maint-5.18, which broke several modules, because
bug #45667 is *old*, and many modules depend on it.

So 02682386fe3e on the maint branch modified the fix to apply only to
code blocks, and added tests to make sure that #45667 wasn’t fixed.

#45667 is fixed in blead, but is untested, so grab the tests from
02682386fe3e and reverse the logic of the second one.

t/re/pat.t

index 777960b..4426caa 100644 (file)
@@ -20,7 +20,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 694;  # Update this when adding/deleting tests.
+plan tests => 696;  # Update this when adding/deleting tests.
 
 run_tests() unless caller;
 
@@ -1451,6 +1451,18 @@ EOP
     }
 
 
+    {
+       # RT #45667
+       # /[#$x]/x didn't interpolate the var $x.
+       my $b = 'cd';
+       my $s = 'abcd$%#&';
+       $s =~ s/[a#$b%]/X/g;
+       is ($s, 'XbXX$XX&', 'RT #45667 without /x');
+       $s = 'abcd$%#&';
+       $s =~ s/[a#$b%]/X/gx;
+       is ($s, 'XbXX$XX&', 'RT #45667 with /x');
+    }
+
 } # End of sub run_tests
 
 1;