Un-deprecate the support for lexical $_
authorRafael Garcia-Suarez <rgs@consttype.org>
Tue, 19 Feb 2013 14:53:10 +0000 (15:53 +0100)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Wed, 20 Feb 2013 16:06:24 +0000 (16:06 +0000)
op.c
pod/perldiag.pod
t/lib/warnings/9uninit
t/lib/warnings/op

diff --git a/op.c b/op.c
index c9a1b53..1d676c4 100644 (file)
--- a/op.c
+++ b/op.c
@@ -578,13 +578,6 @@ Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags)
                              PL_parser->in_my == KEY_state ? "state" : "my"), flags & SVf_UTF8);
        }
     }
-    else if (len == 2 && name[1] == '_' && !is_our)
-       /* diag_listed_as: Use of my $_ is deprecated */
-       Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                             "Use of %s $_ is deprecated",
-                              PL_parser->in_my == KEY_state
-                                ? "state"
-                                : "my");
 
     /* allocate a spare slot and store the name in that slot */
 
index c5fdbb6..9ec4446 100644 (file)
@@ -5702,12 +5702,6 @@ old way has bad side effects.
 it already went past any symlink you are presumably trying to look for.
 The operation returned C<undef>.  Use a filename instead.
 
-=item Use of my $_ is deprecated
-
-(D deprecated) Lexical $_ is deprecated because of
-its confusing side-effects.  Consider using C<local $_>
-instead.  See the explanation under L<perlvar/$_>.
-
 =item Use of %s on a handle without * is deprecated
 
 (D deprecated) You used C<tie>, C<tied> or C<untie> on a scalar but that scalar
@@ -5739,12 +5733,6 @@ C<$array[0+$ref]>.  This warning is not given for overloaded objects,
 however, because you can overload the numification and stringification
 operators and then you presumably know what you are doing.
 
-=item Use of state $_ is deprecated
-
-(D deprecated) Lexical $_ is deprecated because of
-its confusing side-effects.  Consider using C<local $_>
-instead.  See the explanation under L<perlvar/$_>.
-
 =item Use of tainted arguments in %s is deprecated
 
 (W taint, deprecated) You have supplied C<system()> or C<exec()> with multiple
index c34c22f..fb9a487 100644 (file)
@@ -787,7 +787,7 @@ s/$m1/$g1/; undef $_;
 tr/x/y/;       undef $_;
 tr/x/y/r;      undef $_;
 
-my $_; 
+
 /y/;
 /$m1/;
 /$g1/;
@@ -820,7 +820,6 @@ undef $g1;
 $m1 = '$g1';
 $foo =~ s//$m1/ee;
 EXPECT
-Use of my $_ is deprecated at - line 16.
 Use of uninitialized value $_ in pattern match (m//) at - line 5.
 Use of uninitialized value $m1 in regexp compilation at - line 6.
 Use of uninitialized value $_ in pattern match (m//) at - line 6.
index d8e43d7..3e9ea41 100644 (file)
@@ -1,8 +1,5 @@
   op.c         AOK
 
-     Use of my $_ is deprecated
-       my $_ ;
-
      Found = in conditional, should be ==
        1 if $a = 1 ;
 
     
 __END__
 # op.c
-use warnings 'deprecated' ;
-my $_;
-CORE::state $_;
-no warnings 'deprecated' ;
-my $_;
-CORE::state $_;
-EXPECT
-Use of my $_ is deprecated at - line 3.
-Use of state $_ is deprecated at - line 4.
-########
-# op.c
 use warnings 'syntax' ;
 1 if $a = 1 ;
 1 if $a