pp_hot revision 7c478bd95313f5f23a4c958a745db2134aa03244
pp_hot.c
print() on unopened filehandle abc [pp_print]
$f = $a = "abc" ; print $f $a
Filehandle %s opened only for input [pp_print]
print STDIN "abc" ;
Filehandle %s opened only for output [pp_print]
print <STDOUT> ;
print() on closed filehandle %s [pp_print]
close STDIN ; print STDIN "abc" ;
uninitialized [pp_rv2av]
my $a = undef ; my @b = @$a
uninitialized [pp_rv2hv]
my $a = undef ; my %b = %$a
Odd number of elements in hash list [pp_aassign]
%X = (1,2,3) ;
Reference found where even-sized list expected [pp_aassign]
$X = [ 1 ..3 ];
Filehandle %s opened only for output [Perl_do_readline]
open (FH, ">./xcv") ;
my $a = <FH> ;
glob failed (can't start child: %s) [Perl_do_readline] <<TODO
readline() on closed filehandle %s [Perl_do_readline]
close STDIN ; $a = <STDIN>;
readline() on closed filehandle %s [Perl_do_readline]
readline(NONESUCH);
glob failed (child exited with status %d%s) [Perl_do_readline] <<TODO
Deep recursion on subroutine \"%s\" [Perl_sub_crush_depth]
sub fred { fred() if $a++ < 200} fred()
Deep recursion on anonymous subroutine [Perl_sub_crush_depth]
$a = sub { &$a if $a++ < 200} &$a
Possible Y2K bug: about to append an integer to '19' [pp_concat]
$x = "19$yy\n";
__END__
# pp_hot.c [pp_print]
use warnings 'unopened' ;
$f = $a = "abc" ;
print $f $a;
no warnings 'unopened' ;
print $f $a;
EXPECT
print() on unopened filehandle abc at - line 4.
########
# pp_hot.c [pp_print]
use warnings 'io' ;
print STDIN "anc";
print <STDOUT>;
print <STDERR>;
open(FOO, ">&STDOUT") and print <FOO>;
print getc(STDERR);
print getc(FOO);
####################################################################
# The next test is known to fail on some systems (Linux+old glibc, #
# old *BSDs, and NeXT, among others. #
# We skip it for now (on the grounds that it is "just" a warning). #
####################################################################
#read(FOO,$_,1);
no warnings 'io' ;
print STDIN "anc";
EXPECT
Filehandle STDIN opened only for input at - line 3.
Filehandle STDOUT opened only for output at - line 4.
Filehandle STDERR opened only for output at - line 5.
Filehandle FOO opened only for output at - line 6.
Filehandle STDERR opened only for output at - line 7.
Filehandle FOO opened only for output at - line 8.
########
# pp_hot.c [pp_print]
use warnings 'closed' ;
close STDIN ;
print STDIN "anc";
opendir STDIN, ".";
print STDIN "anc";
closedir STDIN;
no warnings 'closed' ;
print STDIN "anc";
opendir STDIN, ".";
print STDIN "anc";
EXPECT
print() on closed filehandle STDIN at - line 4.
print() on closed filehandle STDIN at - line 6.
(Are you trying to call print() on dirhandle STDIN?)
########
# pp_hot.c [pp_rv2av]
use warnings 'uninitialized' ;
my $a = undef ;
my @b = @$a;
no warnings 'uninitialized' ;
my @c = @$a;
EXPECT
Use of uninitialized value in array dereference at - line 4.
########
# pp_hot.c [pp_rv2hv]
use warnings 'uninitialized' ;
my $a = undef ;
my %b = %$a;
no warnings 'uninitialized' ;
my %c = %$a;
EXPECT
Use of uninitialized value in hash dereference at - line 4.
########
# pp_hot.c [pp_aassign]
use warnings 'misc' ;
my %X ; %X = (1,2,3) ;
no warnings 'misc' ;
my %Y ; %Y = (1,2,3) ;
EXPECT
Odd number of elements in hash assignment at - line 3.
########
# pp_hot.c [pp_aassign]
use warnings 'misc' ;
my %X ; %X = [1 .. 3] ;
no warnings 'misc' ;
my %Y ; %Y = [1 .. 3] ;
EXPECT
Reference found where even-sized list expected at - line 3.
########
# pp_hot.c [Perl_do_readline]
use warnings 'closed' ;
close STDIN ; $a = <STDIN> ;
opendir STDIN, "." ; $a = <STDIN> ;
closedir STDIN;
no warnings 'closed' ;
opendir STDIN, "." ; $a = <STDIN> ;
$a = <STDIN> ;
EXPECT
readline() on closed filehandle STDIN at - line 3.
readline() on closed filehandle STDIN at - line 4.
(Are you trying to call readline() on dirhandle STDIN?)
########
# pp_hot.c [Perl_do_readline]
use warnings 'io' ;
my $file = "./xcv" ; unlink $file ;
open (FH, ">./xcv") ;
my $a = <FH> ;
no warnings 'io' ;
$a = <FH> ;
close (FH) ;
unlink $file ;
EXPECT
Filehandle FH opened only for output at - line 5.
########
# pp_hot.c [Perl_sub_crush_depth]
use warnings 'recursion' ;
sub fred
{
fred() if $a++ < 200
}
{
local $SIG{__WARN__} = sub {
die "ok\n" if $_[0] =~ /^Deep recursion on subroutine "main::fred"/
};
fred();
}
EXPECT
ok
########
# pp_hot.c [Perl_sub_crush_depth]
no warnings 'recursion' ;
sub fred
{
fred() if $a++ < 200
}
{
local $SIG{__WARN__} = sub {
die "ok\n" if $_[0] =~ /^Deep recursion on subroutine "main::fred"/
};
fred();
}
EXPECT
########
# pp_hot.c [Perl_sub_crush_depth]
use warnings 'recursion' ;
$b = sub
{
&$b if $a++ < 200
} ;
&$b ;
EXPECT
Deep recursion on anonymous subroutine at - line 5.
########
# pp_hot.c [Perl_sub_crush_depth]
no warnings 'recursion' ;
$b = sub
{
&$b if $a++ < 200
} ;
&$b ;
EXPECT
########
# pp_hot.c [pp_concat]
use warnings 'y2k';
use Config;
BEGIN {
unless ($Config{ccflags} =~ /Y2KWARN/) {
print "SKIPPED\n# perl not built with -DPERL_Y2KWARN";
exit 0;
}
}
my $x;
my $yy = 78;
$x = "19$yy\n";
$x = "19" . $yy . "\n";
$x = "319$yy\n";
$x = "319" . $yy . "\n";
no warnings 'y2k';
$x = "19$yy\n";
$x = "19" . $yy . "\n";
EXPECT
Possible Y2K bug: about to append an integer to '19' at - line 12.
Possible Y2K bug: about to append an integer to '19' at - line 13.