(called 3 times via depcom)
\1 better written as $1
- use warning 'syntax' ;
+ use warnings 'syntax' ;
s/(abc)/\1/;
warn(warn_nosemi)
\x%.*s will produce malformed UTF-8 character; use \x{%.*s} for that
use utf8 ;
$_ = "\xffe"
+
+ Unrecognized escape \\%c passed through
+ $a = "\m" ;
+
+ %s number > %s non-portable
+ my $a = 0b011111111111111111111111111111110 ;
+ $a = 0b011111111111111111111111111111111 ;
+ $a = 0b111111111111111111111111111111111 ;
+ $a = 0x0fffffffe ;
+ $a = 0x0ffffffff ;
+ $a = 0x1ffffffff ;
+ $a = 0037777777776 ;
+ $a = 0037777777777 ;
+ $a = 0047777777777 ;
+
+ Integer overflow in binary number
+ my $a = 0b011111111111111111111111111111110 ;
+ $a = 0b011111111111111111111111111111111 ;
+ $a = 0b111111111111111111111111111111111 ;
+ $a = 0x0fffffffe ;
+ $a = 0x0ffffffff ;
+ $a = 0x1ffffffff ;
+ $a = 0037777777776 ;
+ $a = 0037777777777 ;
+ $a = 0047777777777 ;
Mandatory Warnings
------------------
__END__
# toke.c
-use warning 'deprecated' ;
+use warnings 'deprecated' ;
1 if $a EQ $b ;
1 if $a NE $b ;
1 if $a GT $b ;
1 if $a LT $b ;
1 if $a GE $b ;
1 if $a LE $b ;
-no warning 'deprecated' ;
+no warnings 'deprecated' ;
1 if $a EQ $b ;
1 if $a NE $b ;
1 if $a GT $b ;
Use of LE is deprecated at - line 8.
########
# toke.c
-use warning 'deprecated' ;
+use warnings 'deprecated' ;
format STDOUT =
@<<< @||| @>>> @>>>
$a $b "abc" 'def'
.
-no warning 'deprecated' ;
+no warnings 'deprecated' ;
format STDOUT =
@<<< @||| @>>> @>>>
$a $b "abc" 'def'
Use of comma-less variable list is deprecated at - line 5.
########
# toke.c
-use warning 'deprecated' ;
+use warnings 'deprecated' ;
$a = <<;
-no warning 'deprecated' ;
+no warnings 'deprecated' ;
$a = <<;
EXPECT
Use of bare << to mean <<"" is deprecated at - line 3.
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
s/(abc)/\1/;
-no warning 'syntax' ;
+no warnings 'syntax' ;
s/(abc)/\1/;
EXPECT
\1 better written as $1 at - line 3.
########
# toke.c
-use warning 'semicolon' ;
+use warnings 'semicolon' ;
$a = 1
&time ;
-no warning 'semicolon' ;
+no warnings 'semicolon' ;
$a = 1
&time ;
EXPECT
# Scalars leaked: due to syntax errors
$ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
}
-use warning 'syntax' ;
+use warnings 'syntax' ;
my $a =+ 2 ;
$a =- 2 ;
$a =* 2 ;
# Scalars leaked: due to syntax errors
$ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
}
-no warning 'syntax' ;
+no warnings 'syntax' ;
my $a =+ 2 ;
$a =- 2 ;
$a =* 2 ;
Unterminated <> operator at - line 15.
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
my $a = $a[1,2] ;
-no warning 'syntax' ;
+no warnings 'syntax' ;
my $a = $a[1,2] ;
EXPECT
Multidimensional syntax $a[1,2] not supported at - line 3.
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
sub fred {} ; $SIG{TERM} = fred;
-no warning 'syntax' ;
+no warnings 'syntax' ;
$SIG{TERM} = fred;
EXPECT
You need to quote "fred" at - line 3.
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
@a[3] = 2;
@a{3} = 2;
-no warning 'syntax' ;
+no warnings 'syntax' ;
@a[3] = 2;
@a{3} = 2;
EXPECT
Scalar value @a{3} better written as $a{3} at - line 4.
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
$_ = "ab" ;
s/(ab)/\1/e;
-no warning 'syntax' ;
+no warnings 'syntax' ;
$_ = "ab" ;
s/(ab)/\1/e;
EXPECT
Can't use \1 to mean $1 in expression at - line 4.
########
# toke.c
-use warning 'reserved' ;
+use warnings 'reserved' ;
$a = abc;
-no warning 'reserved' ;
+no warnings 'reserved' ;
$a = abc;
EXPECT
Unquoted string "abc" may clash with future reserved word at - line 3.
########
# toke.c
-use warning 'octal' ;
+use warnings 'octal' ;
chmod 3;
-no warning 'octal' ;
+no warnings 'octal' ;
chmod 3;
EXPECT
-chmod: mode argument is missing initial 0 at - line 3, at end of line
+chmod: mode argument is missing initial 0 at - line 3.
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
@a = qw(a, b, c) ;
-no warning 'syntax' ;
+no warnings 'syntax' ;
@a = qw(a, b, c) ;
EXPECT
Possible attempt to separate words with commas at - line 3.
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
@a = qw(a b #) ;
-no warning 'syntax' ;
+no warnings 'syntax' ;
@a = qw(a b #) ;
EXPECT
Possible attempt to put comments in qw() list at - line 3.
########
# toke.c
-use warning 'octal' ;
+use warnings 'octal' ;
umask 3;
-no warning 'octal' ;
+no warnings 'octal' ;
umask 3;
EXPECT
-umask: argument is missing initial 0 at - line 3, at end of line
+umask: argument is missing initial 0 at - line 3.
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
print ("")
EXPECT
print (...) interpreted as function at - line 3.
########
# toke.c
-no warning 'syntax' ;
+no warnings 'syntax' ;
print ("")
EXPECT
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
printf ("")
EXPECT
printf (...) interpreted as function at - line 3.
########
# toke.c
-no warning 'syntax' ;
+no warnings 'syntax' ;
printf ("")
EXPECT
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
sort ("")
EXPECT
sort (...) interpreted as function at - line 3.
########
# toke.c
-no warning 'syntax' ;
+no warnings 'syntax' ;
sort ("")
EXPECT
########
# toke.c
-use warning 'ambiguous' ;
+use warnings 'ambiguous' ;
$a = ${time[2]};
-no warning 'ambiguous' ;
+no warnings 'ambiguous' ;
$a = ${time[2]};
EXPECT
Ambiguous use of ${time[...]} resolved to $time[...] at - line 3.
########
# toke.c
-use warning 'ambiguous' ;
+use warnings 'ambiguous' ;
$a = ${time{2}};
EXPECT
Ambiguous use of ${time{...}} resolved to $time{...} at - line 3.
########
# toke.c
-no warning 'ambiguous' ;
+no warnings 'ambiguous' ;
$a = ${time{2}};
EXPECT
########
# toke.c
-use warning 'ambiguous' ;
+use warnings 'ambiguous' ;
$a = ${time} ;
-no warning 'ambiguous' ;
+no warnings 'ambiguous' ;
$a = ${time} ;
EXPECT
Ambiguous use of ${time} resolved to $time at - line 3.
########
# toke.c
-use warning 'ambiguous' ;
+use warnings 'ambiguous' ;
sub fred {}
$a = ${fred} ;
-no warning 'ambiguous' ;
+no warnings 'ambiguous' ;
$a = ${fred} ;
EXPECT
Ambiguous use of ${fred} resolved to $fred at - line 4.
########
# toke.c
-use warning 'syntax' ;
+use warnings 'syntax' ;
$a = 1_2;
$a = 1_2345_6;
-no warning 'syntax' ;
+no warnings 'syntax' ;
$a = 1_2;
$a = 1_2345_6;
EXPECT
Misplaced _ in number at - line 4.
########
# toke.c
-use warning 'unsafe' ;
+use warnings 'unsafe' ;
#line 25 "bar"
$a = FRED:: ;
-no warning 'unsafe' ;
+no warnings 'unsafe' ;
#line 25 "bar"
$a = FRED:: ;
EXPECT
Bareword "FRED::" refers to nonexistent package at bar line 25.
########
# toke.c
-use warning 'ambiguous' ;
+use warnings 'ambiguous' ;
sub time {}
my $a = time() ;
-no warning 'ambiguous' ;
+no warnings 'ambiguous' ;
my $b = time() ;
EXPECT
Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
########
# toke.c
-use warning 'utf8' ;
+use warnings 'utf8' ;
eval <<'EOE';
{
#line 30 "foo"
Use of \x{} without utf8 declaration at foo line 30.
########
# toke.c
-no warning 'utf8' ;
+no warnings 'utf8' ;
eval <<'EOE';
{
#line 30 "foo"
########
# toke.c
-use warning 'utf8' ;
+use warnings 'utf8' ;
use utf8 ;
$_ = " \xffe " ;
-no warning 'utf8' ;
+no warnings 'utf8' ;
$_ = " \xffe " ;
EXPECT
\xff will produce malformed UTF-8 character; use \x{ff} for that at - line 4.
$^W = 0 ;
my $a = rand + 4 ;
{
- no warning 'ambiguous' ;
+ no warnings 'ambiguous' ;
$a = rand + 4 ;
- use warning 'ambiguous' ;
+ use warnings 'ambiguous' ;
$a = rand + 4 ;
}
$a = rand + 4 ;
sub fred {} ;
-fred ;
{
- no warning 'ambiguous' ;
+ no warnings 'ambiguous' ;
-fred ;
- use warning 'ambiguous' ;
+ use warnings 'ambiguous' ;
-fred ;
}
-fred ;
$^W = 0 ;
open FOO || time;
{
- no warning 'ambiguous' ;
+ no warnings 'ambiguous' ;
open FOO || time;
- use warning 'ambiguous' ;
+ use warnings 'ambiguous' ;
open FOO || time;
}
open FOO || time;
$^W = 0 ;
*foo *foo ;
{
- no warning 'ambiguous' ;
+ no warnings 'ambiguous' ;
*foo *foo ;
- use warning 'ambiguous' ;
+ use warnings 'ambiguous' ;
*foo *foo ;
}
*foo *foo ;
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.
+########
+# toke.c
+use warnings 'unsafe' ;
+my $a = "\m" ;
+no warnings 'unsafe' ;
+$a = "\m" ;
+EXPECT
+Unrecognized escape \m passed through at - line 3.
+########
+# toke.c
+use warnings 'portable' ;
+my $a = 0b011111111111111111111111111111110 ;
+ $a = 0b011111111111111111111111111111111 ;
+ $a = 0b111111111111111111111111111111111 ;
+ $a = 0x0fffffffe ;
+ $a = 0x0ffffffff ;
+ $a = 0x1ffffffff ;
+ $a = 0037777777776 ;
+ $a = 0037777777777 ;
+ $a = 0047777777777 ;
+no warnings 'portable' ;
+ $a = 0b011111111111111111111111111111110 ;
+ $a = 0b011111111111111111111111111111111 ;
+ $a = 0b111111111111111111111111111111111 ;
+ $a = 0x0fffffffe ;
+ $a = 0x0ffffffff ;
+ $a = 0x1ffffffff ;
+ $a = 0037777777776 ;
+ $a = 0037777777777 ;
+ $a = 0047777777777 ;
+EXPECT
+Binary number > 0b11111111111111111111111111111111 non-portable at - line 5.
+Hexadecimal number > 0xffffffff non-portable at - line 8.
+Octal number > 037777777777 non-portable at - line 11.
+########
+# toke.c
+use warnings 'overflow' ;
+my $a = 0b011111111111111111111111111111110 ;
+ $a = 0b011111111111111111111111111111111 ;
+ $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
+ $a = 0x0fffffffe ;
+ $a = 0x0ffffffff ;
+ $a = 0x10000000000000000 ;
+ $a = 0037777777776 ;
+ $a = 0037777777777 ;
+ $a = 002000000000000000000000;
+no warnings 'overflow' ;
+ $a = 0b011111111111111111111111111111110 ;
+ $a = 0b011111111111111111111111111111111 ;
+ $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
+ $a = 0x0fffffffe ;
+ $a = 0x0ffffffff ;
+ $a = 0x10000000000000000 ;
+ $a = 0037777777776 ;
+ $a = 0037777777777 ;
+ $a = 002000000000000000000000;
+EXPECT
+Integer overflow in binary number at - line 5.
+Integer overflow in hexadecimal number at - line 8.
+Integer overflow in octal number at - line 11.