1Check FATAL functionality 2 3__END__ 4 5# Check compile time warning 6use warnings FATAL => 'syntax' ; 7{ 8 no warnings ; 9 $a =+ 1 ; 10} 11$a =+ 1 ; 12print STDERR "The End.\n" ; 13EXPECT 14Reversed += operator at - line 8. 15######## 16 17# Check compile time warning 18use warnings FATAL => 'all' ; 19{ 20 no warnings ; 21 my $a =+ 1 ; 22} 23my $a =+ 1 ; 24print STDERR "The End.\n" ; 25EXPECT 26Reversed += operator at - line 8. 27######## 28 29# Check runtime scope of pragma 30use warnings FATAL => 'uninitialized' ; 31{ 32 no warnings ; 33 my $b ; chop $b ; 34} 35my $b ; chop $b ; 36print STDERR "The End.\n" ; 37EXPECT 38Use of uninitialized value in scalar chop at - line 8. 39######## 40 41# Check runtime scope of pragma 42use warnings FATAL => 'all' ; 43{ 44 no warnings ; 45 my $b ; chop $b ; 46} 47my $b ; chop $b ; 48print STDERR "The End.\n" ; 49EXPECT 50Use of uninitialized value in scalar chop at - line 8. 51######## 52 53# Check runtime scope of pragma 54no warnings ; 55{ 56 use warnings FATAL => 'uninitialized' ; 57 $a = sub { my $b ; chop $b ; } 58} 59&$a ; 60print STDERR "The End.\n" ; 61EXPECT 62Use of uninitialized value in scalar chop at - line 6. 63######## 64 65# Check runtime scope of pragma 66no warnings ; 67{ 68 use warnings FATAL => 'all' ; 69 $a = sub { my $b ; chop $b ; } 70} 71&$a ; 72print STDERR "The End.\n" ; 73EXPECT 74Use of uninitialized value in scalar chop at - line 6. 75######## 76 77--FILE-- abc 78$a =+ 1 ; 791; 80--FILE-- 81use warnings FATAL => 'syntax' ; 82require "./abc"; 83EXPECT 84 85######## 86 87--FILE-- abc 88use warnings FATAL => 'syntax' ; 891; 90--FILE-- 91require "./abc"; 92$a =+ 1 ; 93EXPECT 94 95######## 96 97--FILE-- abc 98use warnings 'syntax' ; 99$a =+ 1 ; 1001; 101--FILE-- 102use warnings FATAL => 'uninitialized' ; 103require "./abc"; 104my $a ; chop $a ; 105print STDERR "The End.\n" ; 106EXPECT 107Reversed += operator at ./abc line 2. 108Use of uninitialized value in scalar chop at - line 3. 109######## 110 111--FILE-- abc.pm 112use warnings 'syntax' ; 113$a =+ 1 ; 1141; 115--FILE-- 116use warnings FATAL => 'uninitialized' ; 117use abc; 118my $a ; chop $a ; 119print STDERR "The End.\n" ; 120EXPECT 121Reversed += operator at abc.pm line 2. 122Use of uninitialized value in scalar chop at - line 3. 123######## 124 125# Check scope of pragma with eval 126no warnings ; 127eval { 128 use warnings FATAL => 'uninitialized' ; 129 my $b ; chop $b ; 130}; print STDERR "-- $@" ; 131my $b ; chop $b ; 132print STDERR "The End.\n" ; 133EXPECT 134-- Use of uninitialized value in scalar chop at - line 6. 135The End. 136######## 137 138# Check scope of pragma with eval 139use warnings FATAL => 'uninitialized' ; 140eval { 141 my $b ; chop $b ; 142}; print STDERR "-- $@" ; 143my $b ; chop $b ; 144print STDERR "The End.\n" ; 145EXPECT 146-- Use of uninitialized value in scalar chop at - line 5. 147Use of uninitialized value in scalar chop at - line 7. 148######## 149 150# Check scope of pragma with eval 151use warnings FATAL => 'uninitialized' ; 152eval { 153 no warnings ; 154 my $b ; chop $b ; 155}; print STDERR $@ ; 156my $b ; chop $b ; 157print STDERR "The End.\n" ; 158EXPECT 159Use of uninitialized value in scalar chop at - line 8. 160######## 161 162# Check scope of pragma with eval 163no warnings ; 164eval { 165 use warnings FATAL => 'syntax' ; 166 $a =+ 1 ; 167}; print STDERR "-- $@" ; 168$a =+ 1 ; 169print STDERR "The End.\n" ; 170EXPECT 171Reversed += operator at - line 6. 172######## 173 174# Check scope of pragma with eval 175use warnings FATAL => 'syntax' ; 176eval { 177 $a =+ 1 ; 178}; print STDERR "-- $@" ; 179$a =+ 1 ; 180print STDERR "The End.\n" ; 181EXPECT 182Reversed += operator at - line 5. 183######## 184 185# Check scope of pragma with eval 186use warnings FATAL => 'syntax' ; 187eval { 188 no warnings ; 189 $a =+ 1 ; 190}; print STDERR $@ ; 191$a =+ 1 ; 192print STDERR "The End.\n" ; 193EXPECT 194Reversed += operator at - line 8. 195######## 196 197# Check scope of pragma with eval 198no warnings ; 199eval { 200 use warnings FATAL => 'syntax' ; 201}; print STDERR $@ ; 202$a =+ 1 ; 203print STDERR "The End.\n" ; 204EXPECT 205The End. 206######## 207 208# Check scope of pragma with eval 209no warnings ; 210eval q[ 211 use warnings FATAL => 'uninitialized' ; 212 my $b ; chop $b ; 213]; print STDERR "-- $@"; 214my $b ; chop $b ; 215print STDERR "The End.\n" ; 216EXPECT 217-- Use of uninitialized value in scalar chop at (eval 1) line 3. 218The End. 219######## 220 221# Check scope of pragma with eval 222use warnings FATAL => 'uninitialized' ; 223eval ' 224 my $b ; chop $b ; 225'; print STDERR "-- $@" ; 226my $b ; chop $b ; 227print STDERR "The End.\n" ; 228EXPECT 229-- Use of uninitialized value in scalar chop at (eval 1) line 2. 230Use of uninitialized value in scalar chop at - line 7. 231######## 232 233# Check scope of pragma with eval 234use warnings FATAL => 'uninitialized' ; 235eval ' 236 no warnings ; 237 my $b ; chop $b ; 238'; print STDERR $@ ; 239my $b ; chop $b ; 240print STDERR "The End.\n" ; 241EXPECT 242Use of uninitialized value in scalar chop at - line 8. 243######## 244 245# Check scope of pragma with eval 246no warnings ; 247eval q[ 248 use warnings FATAL => 'syntax' ; 249 $a =+ 1 ; 250]; print STDERR "-- $@"; 251$a =+ 1 ; 252print STDERR "The End.\n" ; 253EXPECT 254-- Reversed += operator at (eval 1) line 3. 255The End. 256######## 257 258# Check scope of pragma with eval 259use warnings FATAL => 'syntax' ; 260eval ' 261 $a =+ 1 ; 262'; print STDERR "-- $@"; 263print STDERR "The End.\n" ; 264EXPECT 265-- Reversed += operator at (eval 1) line 2. 266The End. 267######## 268 269# Check scope of pragma with eval 270use warnings FATAL => 'syntax' ; 271eval ' 272 no warnings ; 273 $a =+ 1 ; 274'; print STDERR "-- $@"; 275$a =+ 1 ; 276print STDERR "The End.\n" ; 277EXPECT 278Reversed += operator at - line 8. 279######## 280 281use warnings 'void' ; 282 283time ; 284 285{ 286 use warnings FATAL => qw(void) ; 287 length "abc" ; 288} 289 290join "", 1,2,3 ; 291 292print "done\n" ; 293EXPECT 294Useless use of time in void context at - line 4. 295Useless use of length in void context at - line 8. 296######## 297 298use warnings ; 299 300time ; 301 302{ 303 use warnings FATAL => qw(void) ; 304 length "abc" ; 305} 306 307join "", 1,2,3 ; 308 309print "done\n" ; 310EXPECT 311Useless use of time in void context at - line 4. 312Useless use of length in void context at - line 8. 313######## 314 315use warnings FATAL => 'all'; 316{ 317 no warnings; 318 my $b ; chop $b; 319 { 320 use warnings ; 321 my $b ; chop $b; 322 } 323} 324my $b ; chop $b; 325print STDERR "The End.\n" ; 326EXPECT 327Use of uninitialized value in scalar chop at - line 8. 328Use of uninitialized value in scalar chop at - line 11. 329######## 330 331use warnings FATAL => 'all'; 332{ 333 no warnings FATAL => 'all'; 334 my $b ; chop $b; 335 { 336 use warnings ; 337 my $b ; chop $b; 338 } 339} 340my $b ; chop $b; 341print STDERR "The End.\n" ; 342EXPECT 343Use of uninitialized value in scalar chop at - line 8. 344Use of uninitialized value in scalar chop at - line 11. 345######## 346 347use warnings FATAL => 'all'; 348{ 349 no warnings 'syntax'; 350 { 351 use warnings ; 352 my $b ; chop $b; 353 } 354} 355my $b ; chop $b; 356print STDERR "The End.\n" ; 357EXPECT 358Use of uninitialized value in scalar chop at - line 7. 359######## 360 361use warnings FATAL => 'syntax', NONFATAL => 'void' ; 362 363length "abc"; 364print STDERR "The End.\n" ; 365EXPECT 366Useless use of length in void context at - line 4. 367The End. 368######## 369 370use warnings FATAL => 'all', NONFATAL => 'void' ; 371 372length "abc"; 373print STDERR "The End.\n" ; 374EXPECT 375Useless use of length in void context at - line 4. 376The End. 377######## 378 379use warnings FATAL => 'all', NONFATAL => 'void' ; 380 381my $a ; chomp $a; 382length "abc"; 383print STDERR "The End.\n" ; 384EXPECT 385Useless use of length in void context at - line 5. 386Use of uninitialized value in scalar chomp at - line 4. 387######## 388 389use warnings FATAL => 'void', NONFATAL => 'void' ; 390 391length "abc"; 392print STDERR "The End.\n" ; 393EXPECT 394Useless use of length in void context at - line 4. 395The End. 396######## 397 398use warnings NONFATAL => 'void', FATAL => 'void' ; 399 400length "abc"; 401print STDERR "The End.\n" ; 402EXPECT 403Useless use of length in void context at - line 4. 404######## 405 406use warnings FATAL => 'all', NONFATAL => 'io'; 407no warnings 'once'; 408 409open(F, "<true\ncd"); 410close "fred" ; 411print STDERR "The End.\n" ; 412EXPECT 413Unsuccessful open on filename containing newline at - line 5. 414close() on unopened filehandle fred at - line 6. 415The End. 416######## 417 418use warnings FATAL => 'all', NONFATAL => 'io', FATAL => 'unopened' ; 419no warnings 'once'; 420 421open(F, "<true\ncd"); 422close "fred" ; 423print STDERR "The End.\n" ; 424EXPECT 425Unsuccessful open on filename containing newline at - line 5. 426close() on unopened filehandle fred at - line 6. 427