t/lib/commonsense.t See if configuration meets basic needs
t/lib/Count.pm Helper for t/op/method.t
t/lib/croak.t Test calls to Perl_croak() in the C source.
+t/lib/croak/gv Test croak calls from gv.c
t/lib/croak/mg Test croak calls from mg.c
t/lib/croak/op Test croak calls from op.c
t/lib/croak/pp Test croak calls from pp.c
break;
case '*': /* $* */
case '#': /* $# */
- if (sv_type == SVt_PV)
- /* diag_listed_as: $* is no longer supported. Its use will be fatal in Perl 5.30 */
- Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED, WARN_SYNTAX),
- "$%c is no longer supported. Its use "
- "will be fatal in Perl 5.30", *name);
- break;
+ if (sv_type == SVt_PV)
+ /* diag_listed_as: $* is no longer supported as of Perl 5.30 */
+ Perl_croak(aTHX_ "$%c is no longer supported as of Perl 5.30", *name);
+ break;
case '\010': /* $^H */
{
HV *const hv = GvHVn(gv);
require_tie_mod_s(gv, *name, "Tie::Hash::NamedCapture", 0);
} else if (sv_type == SVt_PV) {
if (*name == '*' || *name == '#') {
- /* diag_listed_as: $# is no longer supported. Its use will be fatal in Perl 5.30 */
- Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED,
- WARN_SYNTAX),
- "$%c is no longer supported. Its use "
- "will be fatal in Perl 5.30", *name);
+ /* diag_listed_as: $* is no longer supported as of Perl 5.30 */
+ Perl_croak(aTHX_ "$%c is no longer supported as of Perl 5.30", *name);
}
}
if (sv_type==SVt_PV || sv_type==SVt_PVGV) {
@x = ($#{<}, $#{.}, $#{>}, $#{/}, $#{?}, $#{=}, $#+, $#{\}, $#{|}, $#-);
@x = ($#{;}, $#{:}, $#{1}), $#_;
####
-# ${#} interpolated
-# It's a known TODO that warnings are deparsed as bits, not textually.
-no warnings;
-() = "${#}a";
-####
# [perl #86060] $( $| $) in regexps need braces
/${(}/;
/${|}/;
You specified a character that has the given plainer way of writing it, and
which is also portable to platforms running with different character sets.
-=item $* is no longer supported. Its use will be fatal in Perl 5.30
+=item $* is no longer supported as of Perl 5.30
-(D deprecated, syntax) The special variable C<$*>, deprecated in older
-perls, has been removed as of 5.10.0 and is no longer supported. In
+(F) The special variable C<$*>, deprecated in older perls, was removed in
+5.10.0, is no longer supported and is a fatal error as of Perl 5.30. In
previous versions of perl the use of C<$*> enabled or disabled multi-line
matching within a string.
Use of this variable will be a fatal error in Perl 5.30.
-=item $# is no longer supported. Its use will be fatal in Perl 5.30
+=item $# is no longer supported as of Perl 5.30
-(D deprecated, syntax) The special variable C<$#>, deprecated in older
-perls, has been removed as of 5.10.0 and is no longer supported. You
+(F) The special variable C<$#>, deprecated in older perls, was removed as of
+5.10.0, is no longer supported and is a fatal error as of Perl 5.30. You
should use the printf/sprintf functions instead.
-Use of this variable will be a fatal error in Perl 5.30.
-
=item '%s' is not a code reference
(W overload) The second (fourth, sixth, ...) argument of
--- /dev/null
+__END__
+########
+# NAME $# is no longer supported as of Perl 5.30 [RT #133583]
+$a = ${"#"};
+EXPECT
+$# is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $* is no longer supported as of Perl 5.30 [RT #133583]
+$a = ${"*"};
+EXPECT
+$* is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $# is no longer supported as of Perl 5.30 [RT #133583]
+$a = ${#};
+EXPECT
+$# is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $* is no longer supported as of Perl 5.30 [RT #133583]
+$a = ${*};
+EXPECT
+$* is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $# is no longer supported as of Perl 5.30 [RT #133583]
+$a = $#;
+EXPECT
+$# is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $* is no longer supported as of Perl 5.30 [RT #133583]
+$a = $*;
+EXPECT
+$* is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $# is no longer supported as of Perl 5.30 [RT #133583]
+$# = $a;
+EXPECT
+$# is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $* is no longer supported as of Perl 5.30 [RT #133583]
+$* = $a;
+EXPECT
+$* is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $# is no longer supported as of Perl 5.30 [RT #133583]
+$a = \$#;
+EXPECT
+$# is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $* is no longer supported as of Perl 5.30 [RT #133583]
+$a = \$*;
+EXPECT
+$* is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $# is no longer supported as of Perl 5.30 [RT #133583]
+$a = \$#;
+EXPECT
+$# is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $* is no longer supported as of Perl 5.30 [RT #133583]
+$a = $*;
+EXPECT
+$* is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $# is no longer supported as of Perl 5.30 [RT #133583]
+$a = $#;
+EXPECT
+$# is no longer supported as of Perl 5.30 at - line 1.
+########
+# NAME $* is no longer supported as of Perl 5.30 [RT #133583]
+$a = $*;
+EXPECT
+$* is no longer supported as of Perl 5.30 at - line 1.
Reversed += operator at - line 6.
Use of uninitialized value $c in scalar chop at - line 9.
########
-
-# Check that deprecation warnings are not implicitly disabled by use
-$*;
-use warnings "void";
-$#;
-EXPECT
-$* is no longer supported. Its use will be fatal in Perl 5.30 at - line 3.
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 5.
-Useless use of a variable in void context at - line 5.
-########
-
-# Check that deprecation warnings are not implicitly disabled by no
-$*;
-no warnings "void";
-$#;
-EXPECT
-$* is no longer supported. Its use will be fatal in Perl 5.30 at - line 3.
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 5.
Can't locate package %s for @%s::ISA
@ISA = qw(Fred); joe()
- $# is no longer supported
- $* is no longer supported
-
- $a = ${"#"} ;
- $a = ${"*"} ;
-
Name "main::a" used only once: possible typo
Mandatory Warnings ALL TODO
Undefined subroutine &main::joe called at - line 3.
########
# gv.c
-$a = ${"#"};
-$a = ${"*"};
-no warnings 'deprecated' ;
-$a = ${"#"};
-$a = ${"*"};
-EXPECT
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 2.
-$* is no longer supported. Its use will be fatal in Perl 5.30 at - line 3.
-########
-# gv.c
-$a = ${#};
-$a = ${*};
-no warnings 'deprecated' ;
-$a = ${#};
-$a = ${*};
-EXPECT
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 2.
-$* is no longer supported. Its use will be fatal in Perl 5.30 at - line 3.
-########
-# gv.c
-$a = $#;
-$a = $*;
-$# = $a;
-$* = $a;
-$a = \$#;
-$a = \$*;
-no warnings 'deprecated' ;
-$a = $#;
-$a = $*;
-$# = $a;
-$* = $a;
-$a = \$#;
-$a = \$*;
-EXPECT
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 2.
-$* is no longer supported. Its use will be fatal in Perl 5.30 at - line 3.
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 4.
-$* is no longer supported. Its use will be fatal in Perl 5.30 at - line 5.
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 6.
-$* is no longer supported. Its use will be fatal in Perl 5.30 at - line 7.
-########
-# gv.c
-@a = @#;
-@a = @*;
-$a = $#;
-$a = $*;
-EXPECT
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 4.
-$* is no longer supported. Its use will be fatal in Perl 5.30 at - line 5.
-########
-# gv.c
-$a = $#;
-$a = $*;
-@a = @#;
-@a = @*;
-EXPECT
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 2.
-$* is no longer supported. Its use will be fatal in Perl 5.30 at - line 3.
-########
-# gv.c
$a = ${^ENCODING};
$a = ${^E_NCODING};
${^E_NCODING} = 1; # We pretend this variable never existed.
Ambiguous use of * resolved as operator * at - line 8.
Operator or semicolon missing before *foo at - line 10.
Ambiguous use of * resolved as operator * at - line 10.
+$* is no longer supported as of Perl 5.30 at - line 14.
########
# toke.c
$^W = 0 ;
# [perl #125540] this asserted or crashed
fresh_perl_like(
- q(map d$#<<<<""),
+ q(map d<<<<""),
qr/Can't find string terminator "" anywhere before EOF at - line 1\./,
{},
"Don't assert parsing a here-doc if we hit EOF early"
fresh_perl_is(
"stat\tt\$#0",
<<'EOM',
-$# is no longer supported. Its use will be fatal in Perl 5.30 at - line 1.
-Number found where operator expected at - line 1, near "$#0"
- (Missing operator before 0?)
-Can't call method "t" on an undefined value at - line 1.
+$# is no longer supported as of Perl 5.30 at - line 1.
EOM
{},
"[perl #129273] heap use after free or overflow"
use strict qw(refs subs);
-plan(130);
+plan(128);
{
no strict 'refs';
$_ = "foo";
@foo = 7..9;
%foo = qw( foo oof );
-{
- no warnings 'deprecated';
- $* = 42;
- is "$_->$*", 'foo->42', '->$* interpolation without feature';
- $# = 43;
- is "$_->$#*", 'foo->43*', '->$#* interpolation without feature';
-}
is "$_->@*", 'foo->@*', '->@* does not interpolate without feature';
is "$_->@[0]", 'foo->@[0]', '->@[ does not interpolate without feature';
is "$_->@{foo}", "foo->7 8 9", '->@{ does not interpolate without feature';
use open qw( :utf8 :std );
no warnings qw(misc reserved);
-plan (tests => 66892);
+plan (tests => 66880);
# ${single:colon} should not be treated as a simple variable, but as a
# block with a label inside.
$tests++;
}
elsif ($chr =~ /[[:punct:][:digit:]]/a) {
+ next if ($chr eq '#' or $chr eq '*'); # RT 133583
# Unlike other variables, we dare not try setting the length-1
# variables that are ASCII punctuation and digits. This is