1toke.c AOK 2 3 we seem to have lost a few ambiguous warnings!! 4 5 6 $a = <<; 7 Use of comma-less variable list is deprecated 8 (called 3 times via depcom) 9 10 \1 better written as $1 11 use warnings 'syntax' ; 12 s/(abc)/\1/; 13 14 warn(warn_nosemi) 15 Semicolon seems to be missing 16 $a = 1 17 &time ; 18 19 20 Reversed %c= operator 21 my $a =+ 2 ; 22 $a =- 2 ; 23 $a =* 2 ; 24 $a =% 2 ; 25 $a =& 2 ; 26 $a =. 2 ; 27 $a =^ 2 ; 28 $a =| 2 ; 29 $a =< 2 ; 30 $a =/ 2 ; 31 32 Multidimensional syntax %.*s not supported 33 my $a = $a[1,2] ; 34 35 You need to quote \"%s\"" 36 sub fred {} ; $SIG{TERM} = fred; 37 38 Scalar value %.*s better written as $%.*s" 39 @a[3] = 2; 40 @a{3} = 2; 41 42 Can't use \\%c to mean $%c in expression 43 $_ = "ab" ; s/(ab)/\1/e; 44 45 Unquoted string "abc" may clash with future reserved word at - line 3. 46 warn(warn_reserved 47 $a = abc; 48 49 Possible attempt to separate words with commas 50 @a = qw(a, b, c) ; 51 52 Possible attempt to put comments in qw() list 53 @a = qw(a b # c) ; 54 55 %s (...) interpreted as function 56 print ("") 57 printf ("") 58 sort ("") 59 60 Ambiguous use of %c{%s%s} resolved to %c%s%s 61 $a = ${time[2]} 62 $a = ${time{2}} 63 64 65 Ambiguous use of %c{%s} resolved to %c%s 66 $a = ${time} 67 sub fred {} $a = ${fred} 68 69 Misplaced _ in number 70 $a = 1_2; 71 $a = 1_2345_6; 72 73 Bareword \"%s\" refers to nonexistent package 74 $a = FRED:: ; 75 76 Ambiguous call resolved as CORE::%s(), qualify as such or use & 77 sub time {} 78 my $a = time() 79 80 Unrecognized escape \\%c passed through 81 $a = "\m" ; 82 83 %s number > %s non-portable 84 my $a = 0b011111111111111111111111111111110 ; 85 $a = 0b011111111111111111111111111111111 ; 86 $a = 0b111111111111111111111111111111111 ; 87 $a = 0x0fffffffe ; 88 $a = 0x0ffffffff ; 89 $a = 0x1ffffffff ; 90 $a = 0037777777776 ; 91 $a = 0037777777777 ; 92 $a = 0047777777777 ; 93 94 Integer overflow in binary number 95 my $a = 0b011111111111111111111111111111110 ; 96 $a = 0b011111111111111111111111111111111 ; 97 $a = 0b111111111111111111111111111111111 ; 98 $a = 0x0fffffffe ; 99 $a = 0x0ffffffff ; 100 $a = 0x1ffffffff ; 101 $a = 0037777777776 ; 102 $a = 0037777777777 ; 103 $a = 0047777777777 ; 104 105 dump() better written as CORE::dump() 106 107 Use of /c modifier is meaningless without /g 108 109 Use of /c modifier is meaningless in s/// 110 111 Mandatory Warnings 112 ------------------ 113 Use of "%s" without parentheses is ambiguous [check_uni] 114 rand + 4 115 116 Ambiguous use of -%s resolved as -&%s() [yylex] 117 sub fred {} ; - fred ; 118 119 Precedence problem: open %.*s should be open(%.*s) [yylex] 120 open FOO || die; 121 122 Operator or semicolon missing before %c%s [yylex] 123 Ambiguous use of %c resolved as operator %c 124 *foo *foo 125 126__END__ 127# toke.c 128use warnings 'deprecated' ; 129format STDOUT = 130@<<< @||| @>>> @>>> 131$a $b "abc" 'def' 132. 133no warnings 'deprecated' ; 134format STDOUT = 135@<<< @||| @>>> @>>> 136$a $b "abc" 'def' 137. 138EXPECT 139Use of comma-less variable list is deprecated at - line 5. 140Use of comma-less variable list is deprecated at - line 5. 141Use of comma-less variable list is deprecated at - line 5. 142######## 143# toke.c 144use warnings 'deprecated' ; 145$a = <<; 146 147no warnings 'deprecated' ; 148$a = <<; 149 150EXPECT 151Use of bare << to mean <<"" is deprecated at - line 3. 152######## 153# toke.c 154use warnings 'syntax' ; 155s/(abc)/\1/; 156no warnings 'syntax' ; 157s/(abc)/\1/; 158EXPECT 159\1 better written as $1 at - line 3. 160######## 161# toke.c 162use warnings 'semicolon' ; 163$a = 1 164&time ; 165no warnings 'semicolon' ; 166$a = 1 167&time ; 168EXPECT 169Semicolon seems to be missing at - line 3. 170######## 171# toke.c 172use warnings 'syntax' ; 173my $a =+ 2 ; 174$a =- 2 ; 175$a =* 2 ; 176$a =% 2 ; 177$a =& 2 ; 178$a =. 2 ; 179$a =^ 2 ; 180$a =| 2 ; 181$a =< 2 ; 182$a =/ 2 ; 183EXPECT 184Reversed += operator at - line 3. 185Reversed -= operator at - line 4. 186Reversed *= operator at - line 5. 187Reversed %= operator at - line 6. 188Reversed &= operator at - line 7. 189Reversed .= operator at - line 8. 190Reversed ^= operator at - line 9. 191Reversed |= operator at - line 10. 192Reversed <= operator at - line 11. 193syntax error at - line 8, near "=." 194syntax error at - line 9, near "=^" 195syntax error at - line 10, near "=|" 196Unterminated <> operator at - line 11. 197######## 198# toke.c 199no warnings 'syntax' ; 200my $a =+ 2 ; 201$a =- 2 ; 202$a =* 2 ; 203$a =% 2 ; 204$a =& 2 ; 205$a =. 2 ; 206$a =^ 2 ; 207$a =| 2 ; 208$a =< 2 ; 209$a =/ 2 ; 210EXPECT 211syntax error at - line 8, near "=." 212syntax error at - line 9, near "=^" 213syntax error at - line 10, near "=|" 214Unterminated <> operator at - line 11. 215######## 216# toke.c 217use warnings 'syntax' ; 218my $a = $a[1,2] ; 219no warnings 'syntax' ; 220my $a = $a[1,2] ; 221EXPECT 222Multidimensional syntax $a[1,2] not supported at - line 3. 223######## 224# toke.c 225use warnings 'syntax' ; 226sub fred {} ; $SIG{TERM} = fred; 227no warnings 'syntax' ; 228$SIG{TERM} = fred; 229EXPECT 230You need to quote "fred" at - line 3. 231######## 232# toke.c 233use warnings 'syntax' ; 234@a[3] = 2; 235@a{3} = 2; 236no warnings 'syntax' ; 237@a[3] = 2; 238@a{3} = 2; 239EXPECT 240Scalar value @a[3] better written as $a[3] at - line 3. 241Scalar value @a{3} better written as $a{3} at - line 4. 242######## 243# toke.c 244use warnings 'syntax' ; 245$_ = "ab" ; 246s/(ab)/\1/e; 247no warnings 'syntax' ; 248$_ = "ab" ; 249s/(ab)/\1/e; 250EXPECT 251Can't use \1 to mean $1 in expression at - line 4. 252######## 253# toke.c 254use warnings 'reserved' ; 255$a = abc; 256$a = { def 257 258=> 1 }; 259no warnings 'reserved' ; 260$a = abc; 261EXPECT 262Unquoted string "abc" may clash with future reserved word at - line 3. 263######## 264# toke.c 265use warnings 'qw' ; 266@a = qw(a, b, c) ; 267no warnings 'qw' ; 268@a = qw(a, b, c) ; 269EXPECT 270Possible attempt to separate words with commas at - line 3. 271######## 272# toke.c 273use warnings 'qw' ; 274@a = qw(a b #) ; 275no warnings 'qw' ; 276@a = qw(a b #) ; 277EXPECT 278Possible attempt to put comments in qw() list at - line 3. 279######## 280# toke.c 281use warnings 'syntax' ; 282print (""); 283print ("") and $x = 1; 284print ("") or die; 285print ("") // die; 286print (1+2) * 3 if 0; # only this one should warn 287print (1+2) if 0; 288EXPECT 289print (...) interpreted as function at - line 7. 290######## 291# toke.c 292no warnings 'syntax' ; 293print ("") 294EXPECT 295 296######## 297# toke.c 298use warnings 'syntax' ; 299printf (""); 300printf ("") . ''; 301EXPECT 302printf (...) interpreted as function at - line 4. 303######## 304# toke.c 305no warnings 'syntax' ; 306printf ("") 307EXPECT 308 309######## 310# toke.c 311use warnings 'syntax' ; 312sort (""); 313sort ("") . ''; 314EXPECT 315sort (...) interpreted as function at - line 4. 316######## 317# toke.c 318no warnings 'syntax' ; 319sort ("") 320EXPECT 321 322######## 323# toke.c 324use warnings 'ambiguous' ; 325$a = ${time[2]}; 326no warnings 'ambiguous' ; 327$a = ${time[2]}; 328EXPECT 329Ambiguous use of ${time[...]} resolved to $time[...] at - line 3. 330######## 331# toke.c 332use warnings 'ambiguous' ; 333$a = ${time{2}}; 334EXPECT 335Ambiguous use of ${time{...}} resolved to $time{...} at - line 3. 336######## 337# toke.c 338no warnings 'ambiguous' ; 339$a = ${time{2}}; 340EXPECT 341 342######## 343# toke.c 344use warnings 'ambiguous' ; 345$a = ${time} ; 346no warnings 'ambiguous' ; 347$a = ${time} ; 348EXPECT 349Ambiguous use of ${time} resolved to $time at - line 3. 350######## 351# toke.c 352use warnings 'ambiguous' ; 353sub fred {} 354$a = ${fred} ; 355no warnings 'ambiguous' ; 356$a = ${fred} ; 357EXPECT 358Ambiguous use of ${fred} resolved to $fred at - line 4. 359######## 360# toke.c 361use warnings 'syntax' ; 362$a = _123; print "$a\n"; #( 3 string) 363$a = 1_23; print "$a\n"; 364$a = 12_3; print "$a\n"; 365$a = 123_; print "$a\n"; # 6 366$a = _+123; print "$a\n"; # 7 string) 367$a = +_123; print "$a\n"; #( 8 string) 368$a = +1_23; print "$a\n"; 369$a = +12_3; print "$a\n"; 370$a = +123_; print "$a\n"; # 11 371$a = _-123; print "$a\n"; #(12 string) 372$a = -_123; print "$a\n"; #(13 string) 373$a = -1_23; print "$a\n"; 374$a = -12_3; print "$a\n"; 375$a = -123_; print "$a\n"; # 16 376$a = 123._456; print "$a\n"; # 17 377$a = 123.4_56; print "$a\n"; 378$a = 123.45_6; print "$a\n"; 379$a = 123.456_; print "$a\n"; # 20 380$a = +123._456; print "$a\n"; # 21 381$a = +123.4_56; print "$a\n"; 382$a = +123.45_6; print "$a\n"; 383$a = +123.456_; print "$a\n"; # 24 384$a = -123._456; print "$a\n"; # 25 385$a = -123.4_56; print "$a\n"; 386$a = -123.45_6; print "$a\n"; 387$a = -123.456_; print "$a\n"; # 28 388$a = 123.456E_12; printf("%.0f\n", $a); # 29 389$a = 123.456E1_2; printf("%.0f\n", $a); 390$a = 123.456E12_; printf("%.0f\n", $a); # 31 391$a = 123.456E_+12; printf("%.0f\n", $a); # 32 392$a = 123.456E+_12; printf("%.0f\n", $a); # 33 393$a = 123.456E+1_2; printf("%.0f\n", $a); 394$a = 123.456E+12_; printf("%.0f\n", $a); # 35 395$a = 123.456E_-12; print "$a\n"; # 36 396$a = 123.456E-_12; print "$a\n"; # 37 397$a = 123.456E-1_2; print "$a\n"; 398$a = 123.456E-12_; print "$a\n"; # 39 399$a = 1__23; print "$a\n"; # 40 400$a = 12.3__4; print "$a\n"; # 41 401$a = 12.34e1__2; printf("%.0f\n", $a); # 42 402no warnings 'syntax' ; 403$a = _123; print "$a\n"; 404$a = 1_23; print "$a\n"; 405$a = 12_3; print "$a\n"; 406$a = 123_; print "$a\n"; 407$a = _+123; print "$a\n"; 408$a = +_123; print "$a\n"; 409$a = +1_23; print "$a\n"; 410$a = +12_3; print "$a\n"; 411$a = +123_; print "$a\n"; 412$a = _-123; print "$a\n"; 413$a = -_123; print "$a\n"; 414$a = -1_23; print "$a\n"; 415$a = -12_3; print "$a\n"; 416$a = -123_; print "$a\n"; 417$a = 123._456; print "$a\n"; 418$a = 123.4_56; print "$a\n"; 419$a = 123.45_6; print "$a\n"; 420$a = 123.456_; print "$a\n"; 421$a = +123._456; print "$a\n"; 422$a = +123.4_56; print "$a\n"; 423$a = +123.45_6; print "$a\n"; 424$a = +123.456_; print "$a\n"; 425$a = -123._456; print "$a\n"; 426$a = -123.4_56; print "$a\n"; 427$a = -123.45_6; print "$a\n"; 428$a = -123.456_; print "$a\n"; 429$a = 123.456E_12; printf("%.0f\n", $a); 430$a = 123.456E1_2; printf("%.0f\n", $a); 431$a = 123.456E12_; printf("%.0f\n", $a); 432$a = 123.456E_+12; printf("%.0f\n", $a); 433$a = 123.456E+_12; printf("%.0f\n", $a); 434$a = 123.456E+1_2; printf("%.0f\n", $a); 435$a = 123.456E+12_; printf("%.0f\n", $a); 436$a = 123.456E_-12; print "$a\n"; 437$a = 123.456E-_12; print "$a\n"; 438$a = 123.456E-1_2; print "$a\n"; 439$a = 123.456E-12_; print "$a\n"; 440$a = 1__23; print "$a\n"; 441$a = 12.3__4; print "$a\n"; 442$a = 12.34e1__2; printf("%.0f\n", $a); 443EXPECT 444OPTIONS regex 445Misplaced _ in number at - line 6. 446Misplaced _ in number at - line 11. 447Misplaced _ in number at - line 16. 448Misplaced _ in number at - line 17. 449Misplaced _ in number at - line 20. 450Misplaced _ in number at - line 21. 451Misplaced _ in number at - line 24. 452Misplaced _ in number at - line 25. 453Misplaced _ in number at - line 28. 454Misplaced _ in number at - line 29. 455Misplaced _ in number at - line 31. 456Misplaced _ in number at - line 32. 457Misplaced _ in number at - line 33. 458Misplaced _ in number at - line 35. 459Misplaced _ in number at - line 36. 460Misplaced _ in number at - line 37. 461Misplaced _ in number at - line 39. 462Misplaced _ in number at - line 40. 463Misplaced _ in number at - line 41. 464Misplaced _ in number at - line 42. 465_123 466123 467123 468123 469123 470_123 471123 472123 473123 474-123 475-_123 476-123 477-123 478-123 479123.456 480123.456 481123.456 482123.456 483123.456 484123.456 485123.456 486123.456 487-123.456 488-123.456 489-123.456 490-123.456 491123456000000000 492123456000000000 493123456000000000 494123456000000000 495123456000000000 496123456000000000 497123456000000000 4981.23456e-0?10 4991.23456e-0?10 5001.23456e-0?10 5011.23456e-0?10 502123 50312.34 50412340000000000 505_123 506123 507123 508123 509123 510_123 511123 512123 513123 514-123 515-_123 516-123 517-123 518-123 519123.456 520123.456 521123.456 522123.456 523123.456 524123.456 525123.456 526123.456 527-123.456 528-123.456 529-123.456 530-123.456 531123456000000000 532123456000000000 533123456000000000 534123456000000000 535123456000000000 536123456000000000 537123456000000000 5381.23456e-0?10 5391.23456e-0?10 5401.23456e-0?10 5411.23456e-0?10 542123 54312.34 54412340000000000 545######## 546# toke.c 547use warnings 'bareword' ; 548#line 25 "bar" 549$a = FRED:: ; 550no warnings 'bareword' ; 551#line 25 "bar" 552$a = FRED:: ; 553EXPECT 554Bareword "FRED::" refers to nonexistent package at bar line 25. 555######## 556# toke.c 557use warnings 'ambiguous' ; 558sub time {} 559my $a = time() ; 560no warnings 'ambiguous' ; 561my $b = time() ; 562EXPECT 563Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4. 564######## 565# toke.c 566use warnings ; 567eval <<'EOE'; 568# line 30 "foo" 569warn "yelp"; 570{ 571 $_ = " \x{123} " ; 572} 573EOE 574EXPECT 575yelp at foo line 30. 576######## 577# toke.c 578my $a = rand + 4 ; 579EXPECT 580Warning: Use of "rand" without parentheses is ambiguous at - line 2. 581######## 582# toke.c 583$^W = 0 ; 584my $a = rand + 4 ; 585{ 586 no warnings 'ambiguous' ; 587 $a = rand + 4 ; 588 use warnings 'ambiguous' ; 589 $a = rand + 4 ; 590} 591$a = rand + 4 ; 592EXPECT 593Warning: Use of "rand" without parentheses is ambiguous at - line 3. 594Warning: Use of "rand" without parentheses is ambiguous at - line 8. 595Warning: Use of "rand" without parentheses is ambiguous at - line 10. 596######## 597# toke.c 598use warnings "ambiguous"; 599print for keys %+; # should not warn 600EXPECT 601######## 602# toke.c 603sub fred {}; 604-fred ; 605EXPECT 606Ambiguous use of -fred resolved as -&fred() at - line 3. 607######## 608# toke.c 609$^W = 0 ; 610sub fred {} ; 611-fred ; 612{ 613 no warnings 'ambiguous' ; 614 -fred ; 615 use warnings 'ambiguous' ; 616 -fred ; 617} 618-fred ; 619EXPECT 620Ambiguous use of -fred resolved as -&fred() at - line 4. 621Ambiguous use of -fred resolved as -&fred() at - line 9. 622Ambiguous use of -fred resolved as -&fred() at - line 11. 623######## 624# toke.c 625open FOO || time; 626EXPECT 627Precedence problem: open FOO should be open(FOO) at - line 2. 628######## 629# toke.c (and [perl #16184]) 630open FOO => "<&0"; close FOO; 631EXPECT 632######## 633# toke.c 634$^W = 0 ; 635open FOO || time; 636{ 637 no warnings 'precedence' ; 638 open FOO || time; 639 use warnings 'precedence' ; 640 open FOO || time; 641} 642open FOO || time; 643EXPECT 644Precedence problem: open FOO should be open(FOO) at - line 3. 645Precedence problem: open FOO should be open(FOO) at - line 8. 646Precedence problem: open FOO should be open(FOO) at - line 10. 647######## 648# toke.c 649$^W = 0 ; 650*foo *foo ; 651{ 652 no warnings 'ambiguous' ; 653 *foo *foo ; 654 use warnings 'ambiguous' ; 655 *foo *foo ; 656} 657*foo *foo ; 658EXPECT 659Operator or semicolon missing before *foo at - line 3. 660Ambiguous use of * resolved as operator * at - line 3. 661Operator or semicolon missing before *foo at - line 8. 662Ambiguous use of * resolved as operator * at - line 8. 663Operator or semicolon missing before *foo at - line 10. 664Ambiguous use of * resolved as operator * at - line 10. 665######## 666# toke.c 667use warnings 'misc' ; 668my $a = "\m" ; 669no warnings 'misc' ; 670$a = "\m" ; 671EXPECT 672Unrecognized escape \m passed through at - line 3. 673######## 674# toke.c 675use warnings 'portable' ; 676my $a = 0b011111111111111111111111111111110 ; 677 $a = 0b011111111111111111111111111111111 ; 678 $a = 0b111111111111111111111111111111111 ; 679 $a = 0x0fffffffe ; 680 $a = 0x0ffffffff ; 681 $a = 0x1ffffffff ; 682 $a = 0037777777776 ; 683 $a = 0037777777777 ; 684 $a = 0047777777777 ; 685no warnings 'portable' ; 686 $a = 0b011111111111111111111111111111110 ; 687 $a = 0b011111111111111111111111111111111 ; 688 $a = 0b111111111111111111111111111111111 ; 689 $a = 0x0fffffffe ; 690 $a = 0x0ffffffff ; 691 $a = 0x1ffffffff ; 692 $a = 0037777777776 ; 693 $a = 0037777777777 ; 694 $a = 0047777777777 ; 695EXPECT 696Binary number > 0b11111111111111111111111111111111 non-portable at - line 5. 697Hexadecimal number > 0xffffffff non-portable at - line 8. 698Octal number > 037777777777 non-portable at - line 11. 699######## 700# toke.c 701use warnings 'overflow' ; 702my $a = 0b011111111111111111111111111111110 ; 703 $a = 0b011111111111111111111111111111111 ; 704 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ; 705 $a = 0x0fffffffe ; 706 $a = 0x0ffffffff ; 707 $a = 0x10000000000000000 ; 708 $a = 0037777777776 ; 709 $a = 0037777777777 ; 710 $a = 002000000000000000000000; 711no warnings 'overflow' ; 712 $a = 0b011111111111111111111111111111110 ; 713 $a = 0b011111111111111111111111111111111 ; 714 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ; 715 $a = 0x0fffffffe ; 716 $a = 0x0ffffffff ; 717 $a = 0x10000000000000000 ; 718 $a = 0037777777776 ; 719 $a = 0037777777777 ; 720 $a = 002000000000000000000000; 721EXPECT 722Integer overflow in binary number at - line 5. 723Integer overflow in hexadecimal number at - line 8. 724Integer overflow in octal number at - line 11. 725######## 726# toke.c 727BEGIN { $^C = 1; } 728use warnings 'misc'; 729dump; 730CORE::dump; 731EXPECT 732dump() better written as CORE::dump() at - line 4. 733- syntax OK 734######## 735# toke.c 736use warnings 'misc'; 737use subs qw/dump/; 738sub dump { print "no warning for overriden dump\n"; } 739dump; 740EXPECT 741no warning for overriden dump 742######## 743# toke.c 744use warnings 'ambiguous'; 745"@mjd_previously_unused_array"; 746no warnings 'ambiguous'; 747"@mjd_previously_unused_array"; 748EXPECT 749Possible unintended interpolation of @mjd_previously_unused_array in string at - line 3. 750######## 751# toke.c 752# 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com 753use warnings 'regexp'; 754"foo" =~ /foo/c; 755"foo" =~ /foo/cg; 756no warnings 'regexp'; 757"foo" =~ /foo/c; 758"foo" =~ /foo/cg; 759EXPECT 760Use of /c modifier is meaningless without /g at - line 4. 761######## 762# toke.c 763# 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com 764use warnings 'regexp'; 765$_ = "ab" ; 766s/ab/ab/c; 767s/ab/ab/cg; 768no warnings 'regexp'; 769s/ab/ab/c; 770s/ab/ab/cg; 771EXPECT 772Use of /c modifier is meaningless in s/// at - line 5. 773Use of /c modifier is meaningless in s/// at - line 6. 774######## 775-wa 776# toke.c 777# 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings 778print "@F\n"; 779EXPECT 780 781######## 782-w 783# toke.c 784# 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings 785print "@F\n"; 786EXPECT 787Possible unintended interpolation of @F in string at - line 4. 788Name "main::F" used only once: possible typo at - line 4. 789######## 790-wa 791# toke.c 792# 20020414 mjd-perl-patch+@plover.com 793EXPECT 794 795######## 796# toke.c 797# 20020414 mjd-perl-patch+@plover.com 798# In 5.7.3, this emitted "Possible unintended interpolation" warnings 799use warnings 'ambiguous'; 800$s = "(@-)(@+)"; 801EXPECT 802 803######## 804# toke.c 805# mandatory warning 806eval q/if ($a) { } elseif ($b) { }/; 807no warnings "syntax"; 808eval q/if ($a) { } elseif ($b) { }/; 809EXPECT 810elseif should be elsif at (eval 1) line 1. 811######## 812# toke.c 813# mandatory warning 814eval q/5 6/; 815no warnings "syntax"; 816eval q/5 6/; 817EXPECT 818Number found where operator expected at (eval 1) line 1, near "5 6" 819 (Missing operator before 6?) 820######## 821# toke.c 822use warnings "syntax"; 823$_ = $a = 1; 824$a !=~ /1/; 825$a !=~ m#1#; 826$a !=~/1/; 827$a !=~ ?/?; 828$a !=~ y/1//; 829$a !=~ tr/1//; 830$a !=~ s/1//; 831$a != ~/1/; 832no warnings "syntax"; 833$a !=~ /1/; 834$a !=~ m#1#; 835$a !=~/1/; 836$a !=~ ?/?; 837$a !=~ y/1//; 838$a !=~ tr/1//; 839$a !=~ s/1//; 840EXPECT 841!=~ should be !~ at - line 4. 842!=~ should be !~ at - line 5. 843!=~ should be !~ at - line 6. 844!=~ should be !~ at - line 7. 845!=~ should be !~ at - line 8. 846!=~ should be !~ at - line 9. 847!=~ should be !~ at - line 10. 848######## 849# toke.c 850our $foo :unique; 851use warnings 'deprecated'; 852our $bar :unique; 853EXPECT 854Use of :unique is deprecated at - line 4. 855