make __ANON__ global
authorRobin Barker <RMBarker@cpan.org>
Wed, 26 Sep 2001 17:56:28 +0000 (18:56 +0100)
committerJarkko Hietaniemi <jhi@iki.fi>
Thu, 27 Sep 2001 22:44:35 +0000 (22:44 +0000)
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 653837770e71c9235bc1f2518379612b68bd92ae..2ed48094093b8a8787fb8d207f202fa0efa7b8de 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 0e4c40494fe00bcfe24e6a2151c3920e3ed49290..fef40f935a3161a78e64187e4b82d21efd3cacbe 100755 (executable)
@@ -97,3 +97,8 @@ sub X {
 X();
 EXPECT
 ok 1
+########
+package;
+print sub { return "ok 1\n" } -> ();
+EXPECT
+ok 1
index 60c19a5e4c5b8957f39fc78a749bce8130e2da38..03e253e6e6f278a2356fa3915e75384f8032cc66 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;