@& sets PL_sawampersand
Jeff Pinyan [Mon, 3 Sep 2001 12:36:20 +0000 (08:36 -0400)]
Message-ID: <Pine.GSO.4.21.0109031235240.7601-100000@crusoe.crusoe.net>

p4raw-id: //depot/perl@11863

gv.c

diff --git a/gv.c b/gv.c
index 33e6cd2..2967fbe 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -814,20 +814,17 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
        break;
 
     case '&':
-       if (len > 1)
-           break;
-       PL_sawampersand = TRUE;
-       goto ro_magicalize;
-
     case '`':
-       if (len > 1)
-           break;
-       PL_sawampersand = TRUE;
-       goto ro_magicalize;
-
     case '\'':
-       if (len > 1)
-           break;
+       if (
+           len > 1 ||
+           sv_type == SVt_PVAV ||
+           sv_type == SVt_PVHV ||
+           sv_type == SVt_PVCV ||
+           sv_type == SVt_PVGV ||
+           sv_type == SVt_PVFM ||
+           sv_type == SVt_PVIO
+       ) { break; }
        PL_sawampersand = TRUE;
        goto ro_magicalize;