This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Call FETCH once for $tied_ref =~ y/a/b/
authorFather Chrysostomos <sprout@cpan.org>
Wed, 23 Nov 2011 21:03:06 +0000 (13:03 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 24 Nov 2011 09:45:29 +0000 (01:45 -0800)
doop.c
t/op/tie_fetch_count.t

diff --git a/doop.c b/doop.c
index e31fae2..231b3d8 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -642,7 +642,7 @@ Perl_do_trans(pTHX_ SV *sv)
        return 0;
     if (!(PL_op->op_private & OPpTRANS_IDENTICAL)) {
        if (!SvPOKp(sv))
-           (void)SvPV_force(sv, len);
+           (void)SvPV_force_nomg(sv, len);
        (void)SvPOK_only_UTF8(sv);
     }
 
index e4fe5f4..81cbe19 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
     require './test.pl';
-    plan (tests => 291);
+    plan (tests => 292);
 }
 
 use strict;
@@ -143,6 +143,8 @@ $dummy  =  $var =~ m/ / ; check_count 'm//';
 $dummy  =  $var =~ s/ //; check_count 's///';
 $dummy  =  $var ~~    1 ; check_count '~~';
 $dummy  =  $var =~ y/ //; check_count 'y///';
+           $var = \1;
+$dummy  =  $var =~y/ /-/; check_count '$ref =~ y///';
            /$var/       ; check_count 'm/pattern/';
            /$var foo/   ; check_count 'm/$tied foo/';
           s/$var//      ; check_count 's/pattern//';