Check existing $^WARNING functionality
__END__
# warnable code, warnings enabled via runtime $^WARNING
$^WARNING = 1 ;
my $b ; chop $b ;
EXPECT
Use of uninitialized value $b in chop at - line 4 character 9.
########
# warnings enabled at compile time, disabled at run time
BEGIN { $^WARNING = 1 }
$^WARNING = 0 ;
my $b ; chop $b ;
EXPECT
########
# warnings disabled at compile time, enabled at run time
BEGIN { $^WARNING = 0 }
$^WARNING = 1 ;
my $b ; chop $b ;
EXPECT
Use of uninitialized value $b in chop at - line 5 character 9.
########
-w
--FILE-- abcd
my $b ; chop $b ;
1 ;
--FILE--
require "./abcd";
EXPECT
Use of uninitialized value $b in chop at ./abcd line 1 character 9.
(require) called at - line 1 character 1.
########
--FILE-- abcd
my $b ; chop $b ;
1 ;
--FILE--
#! perl -w
require "./abcd";
EXPECT
Use of uninitialized value $b in chop at ./abcd line 1 character 9.
(require) called at - line 2 character 1.
########
--FILE-- abcd
my $b ; chop $b ;
1 ;
--FILE--
$^WARNING =1 ;
require "./abcd";
EXPECT
Use of uninitialized value $b in chop at ./abcd line 1 character 9.
(require) called at - line 2 character 1.
########
--FILE-- abcd
$^WARNING = 0;
my $b ; chop $b ;
1 ;
--FILE--
$^WARNING =1 ;
require "./abcd";
EXPECT
########
--FILE-- abcd
$^WARNING = 1;
1 ;
--FILE--
$^WARNING =0 ;
require "./abcd";
my $b ; chop $b ;
EXPECT
Use of uninitialized value $b in chop at - line 3 character 9.
########
$^WARNING = 1;
eval 'my $b ; chop $b ;' ;
print $^STDOUT, $^EVAL_ERROR ;
EXPECT
Use of uninitialized value $b in chop at (eval 1) line 1 character 9.
(eval) called at - line 3 character 1.
########
eval '$^WARNING = 1;' ;
print $^STDOUT, $^EVAL_ERROR ;
my $b ; chop $b ;
EXPECT
Use of uninitialized value $b in chop at - line 4 character 9.
########
try {$^WARNING = 1;} ;
print $^STDOUT, $^EVAL_ERROR ;
my $b ; chop $b ;
EXPECT
Use of uninitialized value $b in chop at - line 4 character 9.
########
do {
local ($^WARNING) = 1;
};
my $b ; chop $b ;
EXPECT
########
my $a ; chop $a ;
do {
local ($^WARNING) = 1;
my $b ; chop $b ;
};
my $c ; chop $c ;
EXPECT
Use of uninitialized value $b in chop at - line 5 character 13.
########
-w
-e undef
EXPECT
Use of uninitialized value in -e at - line 2 character 2.
########
$^WARNING = 1 + 2 ;
EXPECT
########
$^WARNING = $a ;
EXPECT
########
sub fred {}
$^WARNING = fred() ;
EXPECT
########
sub fred { my $b ; chop $b ;}
do { local $^WARNING = 0 ;
fred() ;
};
EXPECT
########
sub fred { my $b ; chop $b ;}
do { local $^WARNING = 1 ;
fred() ;
};
EXPECT
Use of uninitialized value $b in chop at - line 2 character 20.
main::fred called at - line 4 character 3.
########