The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Check interaction of $^W and lexical

__END__

# Check interaction of $^W and use warnings
sub fred { 
    use warnings ;
    my $b ; 
    chop $b ;
}
{ local $^W = 0 ;
  fred() ;
}

EXPECT
Use of uninitialized value $b in scalar chop at - line 6.
########

# Check interaction of $^W and use warnings
sub fred { 
    use warnings ;
    my $b ; 
    chop $b ;
}
{ $^W = 0 ;
  fred() ;
}

EXPECT
Use of uninitialized value $b in scalar chop at - line 6.
########

# Check interaction of $^W and use warnings
sub fred { 
    no warnings ;
    my $b ; 
    chop $b ;
}
{ local $^W = 1 ;
  fred() ;
}

EXPECT

########

# Check interaction of $^W and use warnings
sub fred { 
    no warnings ;
    my $b ; 
    chop $b ;
}
{ $^W = 1 ;
  fred() ;
}

EXPECT

########

# Check interaction of $^W and use warnings
use warnings ;
$^W = 1 ;
my $b ; 
chop $b ;
EXPECT
Use of uninitialized value $b in scalar chop at - line 6.
########

# Check interaction of $^W and use warnings
$^W = 1 ;
use warnings ;
my $b ; 
chop $b ;
EXPECT
Use of uninitialized value $b in scalar chop at - line 6.
########

# Check interaction of $^W and use warnings
$^W = 1 ;
no warnings ;
my $b ; 
chop $b ;
EXPECT

########

# Check interaction of $^W and use warnings
no warnings ;
$^W = 1 ;
my $b ; 
chop $b ;
EXPECT

########
-w
# Check interaction of $^W and use warnings
no warnings ;
my $b ; 
chop $b ;
EXPECT

########
-w
# Check interaction of $^W and use warnings
use warnings ;
my $b ; 
chop $b ;
EXPECT
Use of uninitialized value $b in scalar chop at - line 5.
########

# Check interaction of $^W and use warnings
sub fred { 
    use warnings ;
    my $b ; 
    chop $b ;
}
BEGIN {  $^W = 0 }
fred() ;
EXPECT
Use of uninitialized value $b in scalar chop at - line 6.
########

# Check interaction of $^W and use warnings
sub fred { 
    no warnings ;
    my $b ; 
    chop $b ;
}
BEGIN {  $^W = 1 }
fred() ;

EXPECT

########

# Check interaction of $^W and use warnings
use warnings ;
BEGIN {  $^W = 1 }
my $b ; 
chop $b ;
EXPECT
Use of uninitialized value $b in scalar chop at - line 6.
########

# Check interaction of $^W and use warnings
BEGIN {  $^W = 1 }
use warnings ;
my $b ; 
chop $b ;
EXPECT
Use of uninitialized value $b in scalar chop at - line 6.
########

# Check interaction of $^W and use warnings
BEGIN {  $^W = 1 }
no warnings ;
my $b ; 
chop $b ;
EXPECT

########

# Check interaction of $^W and use warnings
no warnings ;
BEGIN {  $^W = 1 }
my $b ; 
chop $b ;
EXPECT

########

# Check interaction of $^W and use warnings
BEGIN {  $^W = 1 }
{
    no warnings ;
    my $b ; 
    chop $b ;
}
my $b ;
chop $b ;
EXPECT
Use of uninitialized value $b in scalar chop at - line 10.
########

# Check interaction of $^W and use warnings
BEGIN {  $^W = 0 }
{
    use warnings ;
    my $b ; 
    chop $b ;
}
my $b ;
chop $b ;
EXPECT
Use of uninitialized value $b in scalar chop at - line 7.
########

# Check scope of pragma with eval
BEGIN {  $^W = 1 }
{
    no warnings ;
    eval '
        my $b ; chop $b ;
    '; print STDERR $@ ;
    my $b ; chop $b ;
}
EXPECT

########

# Check scope of pragma with eval
BEGIN {  $^W = 1 }
use warnings;
{
    no warnings ;
    eval q[ 
        use warnings 'uninitialized' ;
        my $b ; chop $b ;
    ]; print STDERR $@;
    my $b ; chop $b ;
}
EXPECT
Use of uninitialized value $b in scalar chop at (eval 1) line 3.
########

# Check scope of pragma with eval
BEGIN {  $^W = 0 }
{
    use warnings 'uninitialized' ;
    eval '
        my $b ; chop $b ;
    '; print STDERR $@ ;
    my $b ; chop $b ;
}
EXPECT
Use of uninitialized value $b in scalar chop at (eval 1) line 2.
Use of uninitialized value $b in scalar chop at - line 9.
########

# Check scope of pragma with eval
BEGIN {  $^W = 0 }
{
    use warnings 'uninitialized' ;
    eval '
        no warnings ;
        my $b ; chop $b ;
    '; print STDERR $@ ;
    my $b ; chop $b ;
}
EXPECT
Use of uninitialized value $b in scalar chop at - line 10.
########

# Check scope of pragma with eval
BEGIN {  $^W = 1 }
{
    no warnings ;
    eval '
        my $a =+ 1 ;
    '; print STDERR $@ ;
    my $a =+ 1 ;
}
EXPECT