make __ANON__ global
Robin Barker [Wed, 26 Sep 2001 17:56:28 +0000 (18:56 +0100)]
Message-Id: <200109261656.RAA27762@tempest.npl.co.uk>

p4raw-id: //depot/perl@12251

gv.c
t/op/anonsub.t
t/op/runlevel.t

diff --git a/gv.c b/gv.c
index 6538377..2ed4809 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -656,7 +656,7 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
                  strEQ(name, "ARGVOUT")))
                    global = TRUE;
            }
-           else if (*name == '_' && !name[1])
+           else if (*name == '_' && (!name[1] || strEQ(name,"__ANON__")))
                global = TRUE;
 
            if (global)
index 0e4c404..fef40f9 100755 (executable)
@@ -97,3 +97,8 @@ sub X {
 X();
 EXPECT
 ok 1
+########
+package;
+print sub { return "ok 1\n" } -> ();
+EXPECT
+ok 1
index 60c19a5..03e253e 100755 (executable)
@@ -311,6 +311,7 @@ $SIG{__DIE__} = sub {
 eval { die };
 &{sub { eval 'die' }}();
 sub foo { eval { die } } foo();
+{package rmb; sub{ eval{die} } ->() }; # check __ANON__ is global      
 EXPECT
 In DIE
 main|-|8|(eval)
@@ -320,6 +321,9 @@ main|-|9|main::__ANON__
 In DIE
 main|-|10|(eval)
 main|-|10|main::foo
+In DIE
+rmb|-|11|(eval)
+rmb|-|11|main::__ANON__
 ########
 package TEST;