[perl #97492] Tests & delta for defined ${"::!"}
authorFather Chrysostomos <sprout@cpan.org>
Thu, 1 Sep 2011 15:13:51 +0000 (08:13 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 1 Sep 2011 15:14:02 +0000 (08:14 -0700)
pod/perldelta.pod
t/op/magic.t

index bdf1b2d..8cbae63 100644 (file)
@@ -395,11 +395,14 @@ variable had not been used yet.  This has been fixed.
 
 =item *
 
-C<defined(${"..."})> used to return true for most built-in defined
-variables, but not others, if they had not been used yet.  Many times that
-new built-in variables have been added in past versions, this construct was
+C<defined(${"..."})>, C<defined(*{"..."})>, etc., used to
+return true for most, but not all built-in variables, if
+they had not been used yet.  Many times that new built-in
+variables were added in past versions, this construct was
 not taken into account, so this affected C<${^GLOBAL_PHASE}> and
-C<${^UTF8CACHE}>, among others.
+C<${^UTF8CACHE}>, among others.  It also used to return false if the
+package name was given as well (C<${"::!"}>) and for subroutines in the
+CORE package [perl #97978] [perl #97492] [perl #97484].
 
 =item *
 
index 3969673..dd6d28e 100644 (file)
@@ -5,7 +5,7 @@ BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
     require './test.pl';
-    plan (tests => 145);
+    plan (tests => 147);
 }
 
 # Test that defined() returns true for magic variables created on the fly,
@@ -19,7 +19,7 @@ BEGIN {
     for (qw(
        SIG ^OPEN ^TAINT ^UNICODE ^UTF8LOCALE ^WARNING_BITS 1 2 3 4 5 6 7 8
        9 42 & ` ' : ? ! _ - [ ^ ~ = % . ( ) < > \ / $ | + ; ] ^A ^C ^D
-       ^E ^F ^H ^I ^L ^N ^O ^P ^S ^T ^V ^W ^UTF8CACHE
+       ^E ^F ^H ^I ^L ^N ^O ^P ^S ^T ^V ^W ^UTF8CACHE ::12345 main::98732
     )) {
        my $v = $_;
        # avoid using any global vars here: