diff options
-rw-r--r-- | pp_hot.c | 2 | ||||
-rwxr-xr-x | t/op/subst.t | 26 |
2 files changed, 26 insertions, 2 deletions
@@ -2089,6 +2089,8 @@ PP(pp_subst) SPAGAIN; } SvTAINT(TARG); + if (doutf8) + SvUTF8_on(TARG); LEAVE_SCOPE(oldsave); RETURN; } diff --git a/t/op/subst.t b/t/op/subst.t index 8b0a8b0ada..e80ab23e29 100755 --- a/t/op/subst.t +++ b/t/op/subst.t @@ -7,7 +7,7 @@ BEGIN { } require './test.pl'; -plan( tests => 89 ); +plan( tests => 92 ); $x = 'foo'; $_ = "x"; @@ -372,10 +372,32 @@ ok( $_ eq "C B" && $snum == 12 ); my $l = my $r = $s; $l =~ s/[^\w]//g; $r =~ s/[^\w\.]//g; - is($l, $r, "use utf8"); + is($l, $r, "use utf8 \\w"); } my $pv1 = my $pv2 = "Andreas J. K\303\266nig"; $pv1 =~ s/A/\x{100}/; substr($pv2,0,1) = "\x{100}"; is($pv1, $pv2); + +{ + use utf8; + $a = 'España'; + $a =~ s/ñ/ñ/; + like($a, qr/ñ/, "use utf8 RHS"); +} + +{ + use utf8; + $a = 'España España'; + $a =~ s/ñ/ñ/; + like($a, qr/ñ/, "use utf8 LHS"); +} + +{ + use utf8; + $a = 'España'; + $a =~ s/ñ/ñ/; + like($a, qr/ñ/, "use utf8 LHS and RHS"); +} + |