*glob{FILEHANDLE} is no longer deprecated
authorRicardo Signes <rjbs@cpan.org>
Fri, 1 Jan 2016 02:54:49 +0000 (21:54 -0500)
committerRicardo Signes <rjbs@cpan.org>
Sun, 3 Jan 2016 00:41:03 +0000 (19:41 -0500)
We are now trying to use deprecation warnings only when we believe
that a behavior will really be removed or made an error.  Since we
don't plan to do that with *glob{FILEHANDLE}, the warning is not
useful and may be harmful.

See discussion at [perl #127060].

pod/perldelta.pod
pod/perlref.pod
pp.c
t/op/gv.t
t/uni/gv.t

index 9cd7344..2004760 100644 (file)
@@ -204,7 +204,9 @@ XXX Changes (i.e. rewording) of diagnostic messages go here
 
 =item *
 
-XXX Describe change here
+Accessing the C<IO> part of a glob as C<FILEHANDLE> instead of C<IO> is no
+longer deprecated.  It is discouraged to encourage uniformity (so that, for
+example, one can grep more easily) but it will not be removed. [perl #127060]
 
 =back
 
index 5804c17..e64abe4 100644 (file)
@@ -272,8 +272,9 @@ the IO handle, used for file handles (L<perlfunc/open>), sockets
 (L<perlfunc/socket> and L<perlfunc/socketpair>), and directory
 handles (L<perlfunc/opendir>).  For compatibility with previous
 versions of Perl, C<*foo{FILEHANDLE}> is a synonym for C<*foo{IO}>, though it
-is deprecated as of 5.8.0.  If deprecation warnings are in effect, it will warn
-of its use.
+is discouraged, to encourage a consistent use of one name: IO.  On perls
+between v5.8 and v5.22, it will issue a deprecation warning, but this
+deprecation has since been rescinded.
 
 C<*foo{THING}> returns undef if that particular THING hasn't been used yet,
 except in the case of scalars.  C<*foo{SCALAR}> returns a reference to an
diff --git a/pp.c b/pp.c
index 7071478..016023e 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -675,8 +675,6 @@ PP(pp_gelem)
            break;
        case 'F':
            if (len == 10 && strEQ(second_letter, "ILEHANDLE")) {
-               /* finally deprecated in 5.8.0 */
-               deprecate("*glob{FILEHANDLE}");
                tmpRef = MUTABLE_SV(GvIOp(gv));
            }
            else
index 2c9cc64..d71fd0a 100644 (file)
--- a/t/op/gv.t
+++ b/t/op/gv.t
@@ -182,7 +182,10 @@ is (*{*x{GLOB}}, "*main::STDOUT");
        $warn .= $_[0];
     };
     my $val = *x{FILEHANDLE};
-    print {*x{IO}} ($warn =~ /is deprecated/
+
+    # deprecation warning removed in v5.23 -- rjbs, 2015-12-31
+    # https://rt.perl.org/Ticket/Display.html?id=127060
+    print {*x{IO}} (! defined $warn
                    ? "ok $test\n" : "not ok $test\n");
     curr_test(++$test);
 }
index 89905fd..da48910 100644 (file)
@@ -190,7 +190,10 @@ is (*{*Ẋ{GLOB}}, "*main::STDOUT");
        $warn .= $_[0];
     };
     my $val = *Ẋ{FILEHANDLE};
-    print {*Ẋ{IO}} ($warn =~ /is deprecated/
+
+    # deprecation warning removed in v5.23 -- rjbs, 2015-12-31
+    # https://rt.perl.org/Ticket/Display.html?id=127060
+    print {*Ẋ{IO}} (! defined $warn
                    ? "ok $test\n" : "not ok $test\n");
     curr_test(++$test);
 }