3 we seem to have lost a few ambiguous warnings!!
5 Prototype after '@' for main::foo
8 Illegal character in prototype for main::foo
11 \1 better written as $1
12 use warnings 'syntax' ;
16 Semicolon seems to be missing
33 Multidimensional syntax %.*s not supported
36 You need to quote \"%s\""
37 sub fred {} ; $SIG{TERM} = fred;
39 Can't use \\%c to mean $%c in expression
40 $_ = "ab" ; s/(ab)/\1/e;
42 Unquoted string "abc" may clash with future reserved word at - line 3.
46 Possible attempt to separate words with commas
49 Possible attempt to put comments in qw() list
52 %s (...) interpreted as function
57 Old package separator used in string
62 Ambiguous use of %c{%s%s} resolved to %c%s%s
67 Ambiguous use of %c{%s} resolved to %c%s
69 sub fred {} $a = ${fred}
75 Bareword \"%s\" refers to nonexistent package
78 Ambiguous call resolved as CORE::%s(), qualify as such or use &
82 Unrecognized escape \\%c passed through
88 Postfix dereference is experimental
90 %s number > %s non-portable
91 my $a = 0b011111111111111111111111111111110 ;
92 $a = 0b011111111111111111111111111111111 ;
93 $a = 0b111111111111111111111111111111111 ;
101 Integer overflow in binary number
102 my $a = 0b011111111111111111111111111111110 ;
103 $a = 0b011111111111111111111111111111111 ;
104 $a = 0b111111111111111111111111111111111 ;
112 Use of /c modifier is meaningless without /g
114 Use of /c modifier is meaningless in s///
118 Use of "%s" without parentheses is ambiguous [check_uni]
121 Ambiguous use of -%s resolved as -&%s() [yylex]
122 sub fred {} ; - fred ;
124 Precedence problem: open %.*s should be open(%.*s) [yylex]
127 Operator or semicolon missing before %c%s [yylex]
128 Ambiguous use of %c resolved as operator %c
133 use open qw( :utf8 :std );
135 eval "sub fòò (@\$\0) {}";
137 Prototype after '@' for main::fòò : @$\0 at (eval 1) line 1.
138 Illegal character in prototype for main::fòò : @$\0 at (eval 1) line 1.
141 use open qw( :utf8 :std );
143 eval "sub foo (@\0) {}";
144 eval "sub foo2 :prototype(@\0) {}";
146 Prototype after '@' for main::foo : @\0 at (eval 1) line 1.
147 Illegal character in prototype for main::foo : @\0 at (eval 1) line 1.
148 Prototype after '@' for main::foo2 : @\x{0} at (eval 2) line 1.
149 Illegal character in prototype for main::foo2 : @\x{0} at (eval 2) line 1.
152 if (ord('A') == 193) {
153 print "SKIPPED\n# Different results on EBCDIC";
158 use open qw( :utf8 :std );
160 BEGIN { $::{"foo"} = "\@\$\0L\351on" }
161 BEGIN { eval "sub foo (@\$\0L\x{c3}\x{a9}on) {}"; }
163 Prototype after '@' for main::foo : @$\x{0}L... at (eval 1) line 1.
164 Illegal character in prototype for main::foo : @$\x{0}L... at (eval 1) line 1.
167 use open qw( :utf8 :std );
169 BEGIN { eval "sub foo (@\0) {}"; }
171 Prototype after '@' for main::foo : @\0 at (eval 1) line 1.
172 Illegal character in prototype for main::foo : @\0 at (eval 1) line 1.
175 eval "sub foo (@\xAB) {}";
177 Prototype after '@' for main::foo : @\x{ab} at (eval 1) line 1.
178 Illegal character in prototype for main::foo : @\x{ab} at (eval 1) line 1.
181 use open qw( :utf8 :std );
183 BEGIN { eval "sub foo (@\x{30cb}) {}"; }
185 Prototype after '@' for main::foo : @\x{30cb} at (eval 1) line 1.
186 Illegal character in prototype for main::foo : @\x{30cb} at (eval 1) line 1.
192 Missing ']' in prototype for main::f : [ at - line 2.
193 Missing ']' in prototype for main::f : [ at - line 3.
196 package bar { sub bar { eval q"sub foo ([)" } }
199 Missing ']' in prototype for bar::foo : [ at (eval 1) line 1.
203 $a =~ s/$foo/fool/seq;
207 Unknown regexp modifier "/e" at - line 2, near "=~ "
208 Unknown regexp modifier "/q" at - line 2, near "=~ "
209 Unknown regexp modifier "/q" at - line 3, near "=~ "
210 Execution of - aborted due to compilation errors.
214 use open qw( :utf8 :std );
216 $a =~ s/$foo/fool/seネq;
220 Unknown regexp modifier "/e" at - line 4, near "=~ "
221 Unknown regexp modifier "/ネ" at - line 4, near "=~ "
222 Unknown regexp modifier "/q" at - line 4, near "=~ "
223 Unknown regexp modifier "/ネ" at - line 5, near "=~ "
224 Unknown regexp modifier "/q" at - line 5, near "=~ "
225 Execution of - aborted due to compilation errors.
228 use warnings 'syntax' ;
230 no warnings 'syntax' ;
233 \1 better written as $1 at - line 3.
236 use warnings 'semicolon' ;
239 no warnings 'semicolon' ;
243 Semicolon seems to be missing at - line 3.
246 use warnings 'syntax' ;
258 Reversed += operator at - line 3.
259 Reversed -= operator at - line 4.
260 Reversed *= operator at - line 5.
261 Reversed %= operator at - line 6.
262 Reversed &= operator at - line 7.
263 Reversed .= operator at - line 8.
264 Reversed ^= operator at - line 9.
265 Reversed |= operator at - line 10.
266 Reversed <= operator at - line 11.
267 syntax error at - line 8, near "=."
268 syntax error at - line 9, near "=^"
269 syntax error at - line 10, near "=|"
270 Unterminated <> operator at - line 11.
273 no warnings 'syntax' ;
285 syntax error at - line 8, near "=."
286 syntax error at - line 9, near "=^"
287 syntax error at - line 10, near "=|"
288 Unterminated <> operator at - line 11.
291 use warnings 'syntax' ;
293 no warnings 'syntax' ;
296 Multidimensional syntax $a[1,2] not supported at - line 3.
299 use warnings 'syntax' ;
300 sub fred {} ; $SIG{TERM} = fred;
301 no warnings 'syntax' ;
304 You need to quote "fred" at - line 3.
308 use open qw( :utf8 :std );
309 use warnings 'syntax' ;
310 sub frèd {} ; $SIG{TERM} = frèd;
311 no warnings 'syntax' ;
314 You need to quote "frèd" at - line 5.
318 use open qw( :utf8 :std );
319 use warnings 'syntax' ;
320 sub ふれど {} ; $SIG{TERM} = ふれど;
321 no warnings 'syntax' ;
324 You need to quote "ふれど" at - line 5.
327 use warnings 'syntax' ;
330 s//\(2)/e; # should be exempt
331 s/${\2}//; # same here
333 no warnings 'syntax' ;
337 Can't use \1 to mean $1 in expression at - line 4.
340 use warnings 'reserved' ;
345 no warnings 'reserved' ;
348 Unquoted string "abc" may clash with future reserved word at - line 3.
356 Possible attempt to separate words with commas at - line 3.
364 Possible attempt to put comments in qw() list at - line 3.
368 @a = qw(a, b, c # #) ;
370 @a = qw(a, b, c # #) ;
372 Possible attempt to separate words with commas at - line 3.
373 Possible attempt to put comments in qw() list at - line 3.
376 use warnings 'syntax' ;
378 print ("") and $x = 1;
381 print (1+2) * 3 if 0; # only this one should warn
384 print (...) interpreted as function at - line 7.
387 no warnings 'syntax' ;
393 use warnings 'syntax' ;
397 printf (...) interpreted as function at - line 4.
400 no warnings 'syntax' ;
406 use warnings 'syntax' ;
410 sort (...) interpreted as function at - line 4.
413 no warnings 'syntax' ;
418 use warnings 'syntax';
423 no warnings 'syntax' ;
428 Old package separator used in string at - line 3.
429 (Did you mean "$foo\'bar" instead?)
430 Old package separator used in string at - line 4.
431 (Did you mean "@foo\'bar" instead?)
432 Old package separator used in string at - line 5.
433 (Did you mean "$#foo\'bar" instead?)
435 use warnings 'syntax'; use utf8;
440 no warnings 'syntax' ;
445 Old package separator used in string at - line 3.
446 (Did you mean "$fooл\'barл" instead?)
447 Old package separator used in string at - line 4.
448 (Did you mean "@fooл\'barл" instead?)
449 Old package separator used in string at - line 5.
450 (Did you mean "$#fooл\'barл" instead?)
453 use warnings 'ambiguous' ;
455 no warnings 'ambiguous' ;
458 Ambiguous use of ${time[...]} resolved to $time[...] at - line 3.
461 use warnings 'ambiguous' ;
464 Ambiguous use of ${time{...}} resolved to $time{...} at - line 3.
467 use warnings 'ambiguous' ;
475 Ambiguous use of ${time{...}} resolved to $time{...} at - line 5.
479 use warnings 'ambiguous' ;
493 Ambiguous use of ${time[...]} resolved to $time[...] at - line 5.
494 Ambiguous use of ${time[...]} resolved to $time[...] at - line 10.
498 no warnings 'ambiguous' ;
504 use warnings 'ambiguous' ;
507 $a = $#{time} ; # This one is special cased in toke.c
510 $a = defined &{time} ; # To avoid calling &::time
511 no warnings 'ambiguous' ;
514 $a = $#{time} ; # This one is special cased in toke.c
517 $a = defined &{time} ; # To avoid calling &::time
519 Ambiguous use of ${time} resolved to $time at - line 3.
520 Ambiguous use of @{time} resolved to @time at - line 4.
521 Ambiguous use of @{time} resolved to @time at - line 5.
522 Ambiguous use of %{time} resolved to %time at - line 6.
523 Ambiguous use of *{time} resolved to *time at - line 7.
524 Ambiguous use of &{time} resolved to &time at - line 8.
527 use warnings 'ambiguous' ;
550 Ambiguous use of ${time} resolved to $time at - line 4.
551 Ambiguous use of @{time} resolved to @time at - line 7.
552 Ambiguous use of @{time} resolved to @time at - line 10.
553 Ambiguous use of %{time} resolved to %time at - line 13.
554 Ambiguous use of *{time} resolved to *time at - line 16.
555 Ambiguous use of &{time} resolved to &time at - line 19.
559 use warnings 'ambiguous' ;
562 no warnings 'ambiguous' ;
565 Ambiguous use of ${fred} resolved to $fred at - line 4.
568 use warnings 'syntax' ;
569 $a = _123; print "$a\n"; #( 3 string)
570 $a = 1_23; print "$a\n";
571 $a = 12_3; print "$a\n";
572 $a = 123_; print "$a\n"; # 6
573 $a = _+123; print "$a\n"; # 7 string)
574 $a = +_123; print "$a\n"; #( 8 string)
575 $a = +1_23; print "$a\n";
576 $a = +12_3; print "$a\n";
577 $a = +123_; print "$a\n"; # 11
578 $a = _-123; print "$a\n"; #(12 string)
579 $a = -_123; print "$a\n"; #(13 string)
580 $a = -1_23; print "$a\n";
581 $a = -12_3; print "$a\n";
582 $a = -123_; print "$a\n"; # 16
583 $a = 123._456; print "$a\n"; # 17
584 $a = 123.4_56; print "$a\n";
585 $a = 123.45_6; print "$a\n";
586 $a = 123.456_; print "$a\n"; # 20
587 $a = +123._456; print "$a\n"; # 21
588 $a = +123.4_56; print "$a\n";
589 $a = +123.45_6; print "$a\n";
590 $a = +123.456_; print "$a\n"; # 24
591 $a = -123._456; print "$a\n"; # 25
592 $a = -123.4_56; print "$a\n";
593 $a = -123.45_6; print "$a\n";
594 $a = -123.456_; print "$a\n"; # 28
595 $a = 123.456E_12; printf("%.0f\n", $a); # 29
596 $a = 123.456E1_2; printf("%.0f\n", $a);
597 $a = 123.456E12_; printf("%.0f\n", $a); # 31
598 $a = 123.456E_+12; printf("%.0f\n", $a); # 32
599 $a = 123.456E+_12; printf("%.0f\n", $a); # 33
600 $a = 123.456E+1_2; printf("%.0f\n", $a);
601 $a = 123.456E+12_; printf("%.0f\n", $a); # 35
602 $a = 123.456E_-12; print "$a\n"; # 36
603 $a = 123.456E-_12; print "$a\n"; # 37
604 $a = 123.456E-1_2; print "$a\n";
605 $a = 123.456E-12_; print "$a\n"; # 39
606 $a = 1__23; print "$a\n"; # 40
607 $a = 12.3__4; print "$a\n"; # 41
608 $a = 12.34e1__2; printf("%.0f\n", $a); # 42
609 no warnings 'syntax' ;
610 $a = _123; print "$a\n";
611 $a = 1_23; print "$a\n";
612 $a = 12_3; print "$a\n";
613 $a = 123_; print "$a\n";
614 $a = _+123; print "$a\n";
615 $a = +_123; print "$a\n";
616 $a = +1_23; print "$a\n";
617 $a = +12_3; print "$a\n";
618 $a = +123_; print "$a\n";
619 $a = _-123; print "$a\n";
620 $a = -_123; print "$a\n";
621 $a = -1_23; print "$a\n";
622 $a = -12_3; print "$a\n";
623 $a = -123_; print "$a\n";
624 $a = 123._456; print "$a\n";
625 $a = 123.4_56; print "$a\n";
626 $a = 123.45_6; print "$a\n";
627 $a = 123.456_; print "$a\n";
628 $a = +123._456; print "$a\n";
629 $a = +123.4_56; print "$a\n";
630 $a = +123.45_6; print "$a\n";
631 $a = +123.456_; print "$a\n";
632 $a = -123._456; print "$a\n";
633 $a = -123.4_56; print "$a\n";
634 $a = -123.45_6; print "$a\n";
635 $a = -123.456_; print "$a\n";
636 $a = 123.456E_12; printf("%.0f\n", $a);
637 $a = 123.456E1_2; printf("%.0f\n", $a);
638 $a = 123.456E12_; printf("%.0f\n", $a);
639 $a = 123.456E_+12; printf("%.0f\n", $a);
640 $a = 123.456E+_12; printf("%.0f\n", $a);
641 $a = 123.456E+1_2; printf("%.0f\n", $a);
642 $a = 123.456E+12_; printf("%.0f\n", $a);
643 $a = 123.456E_-12; print "$a\n";
644 $a = 123.456E-_12; print "$a\n";
645 $a = 123.456E-1_2; print "$a\n";
646 $a = 123.456E-12_; print "$a\n";
647 $a = 1__23; print "$a\n";
648 $a = 12.3__4; print "$a\n";
649 $a = 12.34e1__2; printf("%.0f\n", $a);
652 Misplaced _ in number at - line 6.
653 Misplaced _ in number at - line 11.
654 Misplaced _ in number at - line 16.
655 Misplaced _ in number at - line 17.
656 Misplaced _ in number at - line 20.
657 Misplaced _ in number at - line 21.
658 Misplaced _ in number at - line 24.
659 Misplaced _ in number at - line 25.
660 Misplaced _ in number at - line 28.
661 Misplaced _ in number at - line 29.
662 Misplaced _ in number at - line 31.
663 Misplaced _ in number at - line 32.
664 Misplaced _ in number at - line 33.
665 Misplaced _ in number at - line 35.
666 Misplaced _ in number at - line 36.
667 Misplaced _ in number at - line 37.
668 Misplaced _ in number at - line 39.
669 Misplaced _ in number at - line 40.
670 Misplaced _ in number at - line 41.
671 Misplaced _ in number at - line 42.
754 use warnings 'syntax';
755 $a = 1_; print "$a\n";
756 $a = 01_; print "$a\n";
757 $a = 0_; print "$a\n";
758 $a = 0x1_; print "$a\n";
759 $a = 0x_; print "$a\n";
760 $a = 1.2_; print "$a\n";
761 $a = 1._2; print "$a\n";
762 $a = 1._; print "$a\n";
764 Misplaced _ in number at - line 3.
765 Misplaced _ in number at - line 4.
766 Misplaced _ in number at - line 5.
767 Misplaced _ in number at - line 6.
768 Misplaced _ in number at - line 7.
769 Misplaced _ in number at - line 8.
770 Misplaced _ in number at - line 9.
771 Misplaced _ in number at - line 10.
782 use warnings 'bareword' ;
785 no warnings 'bareword' ;
789 Bareword "FRED::" refers to nonexistent package at bar line 25.
793 use open qw( :utf8 :std );
794 use warnings 'bareword' ;
797 no warnings 'bareword' ;
801 Bareword "FRÈD::" refers to nonexistent package at bar line 25.
805 use open qw( :utf8 :std );
806 use warnings 'bareword' ;
809 no warnings 'bareword' ;
813 Bareword "ϞϞϞ::" refers to nonexistent package at bar line 25.
816 use warnings 'ambiguous' ;
819 no warnings 'ambiguous' ;
822 Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
841 Warning: Use of "rand" without parentheses is ambiguous at - line 2.
847 no warnings 'ambiguous' ;
849 use warnings 'ambiguous' ;
854 Warning: Use of "rand" without parentheses is ambiguous at - line 3.
855 Warning: Use of "rand" without parentheses is ambiguous at - line 8.
856 Warning: Use of "rand" without parentheses is ambiguous at - line 10.
862 my $b = whatever + 4 ;
864 Warning: Use of "myrand" without parentheses is ambiguous at - line 4.
867 use warnings "ambiguous";
868 print for keys %+; # should not warn
871 # toke.c [This does not warn any more.]
874 sub hank : lvalue {$_}
875 --hank; # This should *not* warn [perl #77240]
878 # toke.c [This does not warn any more.]
883 no warnings 'ambiguous' ;
885 use warnings 'ambiguous' ;
891 # toke.c [This does not warn any more.]
893 use open qw( :utf8 :std );
898 # toke.c [This does not warn any more.]
901 use open qw( :utf8 :std );
905 no warnings 'ambiguous' ;
907 use warnings 'ambiguous' ;
913 # toke.c [This does not warn any more.]
915 use open qw( :utf8 :std );
920 # toke.c [This does not warn any more.]
923 use open qw( :utf8 :std );
927 no warnings 'ambiguous' ;
929 use warnings 'ambiguous' ;
937 open local *FOO; # should be ok
939 Precedence problem: open FOO should be open(FOO) at - line 2.
943 use open qw( :utf8 :std );
946 Precedence problem: open FÒÒ should be open(FÒÒ) at - line 4.
950 use open qw( :utf8 :std );
953 Precedence problem: open ᒍOO should be open(ᒍOO) at - line 4.
955 # toke.c (and [perl #16184])
956 open FOO => "<&0"; close FOO;
963 no warnings 'precedence' ;
965 use warnings 'precedence' ;
969 open Foo::BAR; # this should not warn
971 Precedence problem: open FOO should be open(FOO) at - line 3.
972 Precedence problem: open FOO should be open(FOO) at - line 8.
973 Precedence problem: open FOO should be open(FOO) at - line 10.
978 use open qw( :utf8 :std );
981 no warnings 'precedence' ;
983 use warnings 'precedence' ;
988 Precedence problem: open FÒÒ should be open(FÒÒ) at - line 5.
989 Precedence problem: open FÒÒ should be open(FÒÒ) at - line 10.
990 Precedence problem: open FÒÒ should be open(FÒÒ) at - line 12.
994 use open qw( :utf8 :std );
998 no warnings 'precedence' ;
1000 use warnings 'precedence' ;
1005 Precedence problem: open ᒍÒÒ should be open(ᒍÒÒ) at - line 5.
1006 Precedence problem: open ᒍÒÒ should be open(ᒍÒÒ) at - line 10.
1007 Precedence problem: open ᒍÒÒ should be open(ᒍÒÒ) at - line 12.
1013 no warnings 'ambiguous' ;
1015 use warnings 'ambiguous' ;
1019 # These should not warn [perl #117535]:
1021 no warnings 'deprecated';
1025 Operator or semicolon missing before *foo at - line 3.
1026 Ambiguous use of * resolved as operator * at - line 3.
1027 Operator or semicolon missing before *foo at - line 8.
1028 Ambiguous use of * resolved as operator * at - line 8.
1029 Operator or semicolon missing before *foo at - line 10.
1030 Ambiguous use of * resolved as operator * at - line 10.
1031 $* is no longer supported as of Perl 5.30 at - line 14.
1037 no warnings 'ambiguous' ;
1039 use warnings 'ambiguous' ;
1043 # This should not produce ambiguity warnings [perl #117535]:
1047 Operator or semicolon missing before %foo at - line 3.
1048 Ambiguous use of % resolved as operator % at - line 3.
1049 Operator or semicolon missing before %foo at - line 8.
1050 Ambiguous use of % resolved as operator % at - line 8.
1051 Operator or semicolon missing before %foo at - line 10.
1052 Ambiguous use of % resolved as operator % at - line 10.
1053 Bareword found where operator expected at - line 12, near "$%foo"
1054 (Missing operator before foo?)
1055 Bareword found where operator expected at - line 13, near "$ %foo"
1056 (Missing operator before foo?)
1057 Illegal modulus zero at - line 3.
1063 no warnings 'ambiguous' ;
1065 use warnings 'ambiguous' ;
1069 # These should not warn produce ambiguity warnings [perl #76910]:
1074 Operator or semicolon missing before &foo at - line 3.
1075 Ambiguous use of & resolved as operator & at - line 3.
1076 Operator or semicolon missing before &foo at - line 8.
1077 Ambiguous use of & resolved as operator & at - line 8.
1078 Operator or semicolon missing before &foo at - line 10.
1079 Ambiguous use of & resolved as operator & at - line 10.
1080 Bareword found where operator expected at - line 13, near "$&foo"
1081 (Missing operator before foo?)
1082 Bareword found where operator expected at - line 14, near "$ &foo"
1083 (Missing operator before foo?)
1084 Undefined subroutine &main::foo called at - line 3.
1088 use open qw( :utf8 :std );
1092 no warnings 'ambiguous' ;
1094 use warnings 'ambiguous' ;
1099 Operator or semicolon missing before *foo at - line 5.
1100 Ambiguous use of * resolved as operator * at - line 5.
1101 Operator or semicolon missing before *foo at - line 10.
1102 Ambiguous use of * resolved as operator * at - line 10.
1103 Operator or semicolon missing before *foo at - line 12.
1104 Ambiguous use of * resolved as operator * at - line 12.
1107 use warnings 'misc' ;
1109 no warnings 'misc' ;
1112 Unrecognized escape \m passed through at - line 3.
1115 use warnings 'misc' ;
1117 no warnings 'misc' ;
1120 Useless use of \E at - line 3.
1123 use feature 'postderef_qq';
1131 use warnings 'portable' ;
1132 my $a = 0b011111111111111111111111111111110 ;
1133 $a = 0b011111111111111111111111111111111 ;
1134 $a = 0b111111111111111111111111111111111 ;
1138 $a = 0037777777776 ;
1139 $a = 0037777777777 ;
1140 $a = 0047777777777 ;
1141 no warnings 'portable' ;
1142 $a = 0b011111111111111111111111111111110 ;
1143 $a = 0b011111111111111111111111111111111 ;
1144 $a = 0b111111111111111111111111111111111 ;
1148 $a = 0037777777776 ;
1149 $a = 0037777777777 ;
1150 $a = 0047777777777 ;
1152 Binary number > 0b11111111111111111111111111111111 non-portable at - line 5.
1153 Hexadecimal number > 0xffffffff non-portable at - line 8.
1154 Octal number > 037777777777 non-portable at - line 11.
1157 use warnings 'overflow' ;
1158 my $a = 0b011111111111111111111111111111110 ;
1159 $a = 0b011111111111111111111111111111111 ;
1160 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
1163 $a = 0x10000000000000000 ;
1164 $a = 0037777777776 ;
1165 $a = 0037777777777 ;
1166 $a = 002000000000000000000000;
1167 no warnings 'overflow' ;
1168 $a = 0b011111111111111111111111111111110 ;
1169 $a = 0b011111111111111111111111111111111 ;
1170 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
1173 $a = 0x10000000000000000 ;
1174 $a = 0037777777776 ;
1175 $a = 0037777777777 ;
1176 $a = 002000000000000000000000;
1178 Integer overflow in binary number at - line 5.
1179 Integer overflow in hexadecimal number at - line 8.
1180 Integer overflow in octal number at - line 11.
1183 use warnings 'ambiguous';
1184 "@mjd_previously_unused_array";
1185 no warnings 'ambiguous';
1186 "@mjd_previously_unused_array2";
1188 Possible unintended interpolation of @mjd_previously_unused_array in string at - line 3.
1192 use open qw( :utf8 :std );
1193 use warnings 'ambiguous';
1194 "@mjd_previously_unused_àrray";
1195 no warnings 'ambiguous';
1196 "@mjd_previously_unused_àrray2";
1198 Possible unintended interpolation of @mjd_previously_unused_àrray in string at - line 5.
1202 use open qw( :utf8 :std );
1203 use warnings 'ambiguous';
1204 "@mjd_previously_unused_ぁrrぁy";
1205 no warnings 'ambiguous';
1206 "@mjd_previously_unused_ぁrrぁy2";
1208 Possible unintended interpolation of @mjd_previously_unused_ぁrrぁy in string at - line 5.
1216 # 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
1217 use warnings 'regexp';
1220 no warnings 'regexp';
1224 Use of /c modifier is meaningless without /g at - line 4.
1227 # 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
1228 use warnings 'regexp';
1232 no warnings 'regexp';
1236 Use of /c modifier is meaningless in s/// at - line 5.
1237 Use of /c modifier is meaningless in s/// at - line 6.
1241 # 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
1248 # 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
1251 Possible unintended interpolation of @F in string at - line 4.
1252 Name "main::F" used only once: possible typo at - line 4.
1256 # 20020414 mjd-perl-patch+@plover.com
1261 # 20020414 mjd-perl-patch+@plover.com
1262 # In 5.7.3, this emitted "Possible unintended interpolation" warnings
1263 use warnings 'ambiguous';
1270 eval q/if ($a) { } elseif ($b) { }/;
1271 no warnings "syntax";
1272 eval q/if ($a) { } elseif ($b) { }/;
1274 elseif should be elsif at (eval 1) line 1.
1279 no warnings "syntax";
1282 Number found where operator expected at (eval 1) line 1, near "5 6"
1283 (Missing operator before 6?)
1286 use warnings "syntax"; no warnings "deprecated";
1295 no warnings "syntax";
1303 !=~ should be !~ at - line 4.
1304 !=~ should be !~ at - line 5.
1305 !=~ should be !~ at - line 6.
1306 !=~ should be !~ at - line 7.
1307 !=~ should be !~ at - line 8.
1308 !=~ should be !~ at - line 9.
1311 use warnings "syntax";
1312 sub proto_after_array(@$);
1313 sub proto_after_arref(\@$);
1314 sub proto_after_arref2(\[@$]);
1315 sub proto_after_arref3(\[@$]_);
1316 sub proto_after_hash(%$);
1317 sub proto_after_hashref(\%$);
1318 sub proto_after_hashref2(\[%$]);
1319 sub underscore_last_pos($_);
1320 sub underscore2($_;$);
1321 sub underscore_fail($_$); sub underscore_fail2 : prototype($_$);
1322 sub underscore_after_at(@_);
1325 use feature 'state';
1326 state sub estate (@$);
1331 no warnings "syntax";
1332 sub proto_after_array(@$);
1333 sub proto_after_hash(%$);
1334 sub underscore_fail($_$);
1336 Prototype after '@' for main::proto_after_array : @$ at - line 3.
1337 Prototype after '%' for main::proto_after_hash : %$ at - line 7.
1338 Illegal character after '_' in prototype for main::underscore_fail : $_$ at - line 12.
1339 Illegal character after '_' in prototype for main::underscore_fail2 : $_$ at - line 12.
1340 Prototype after '@' for main::underscore_after_at : @_ at - line 13.
1341 Prototype after '@' for hour : @$ at - line 14.
1342 Prototype after '@' for migh : @$ at - line 15.
1343 Prototype after '@' for estate : @$ at - line 17.
1344 Prototype after '@' for hour : @$ at - line 19.
1345 Prototype after '@' for migh : @$ at - line 20.
1346 Prototype after '@' for estate : @$ at - line 21.
1349 use warnings "ambiguous";
1350 "foo\nn" =~ /^foo$\n/;
1351 "foo\nn" =~ /^foo${\}n/;
1352 my $foo = qr/^foo$\n/;
1353 my $bar = qr/^foo${\}n/;
1354 no warnings "ambiguous";
1355 "foo\nn" =~ /^foo$\n/;
1356 "foo\nn" =~ /^foo${\}n/;
1357 my $foo = qr/^foo$\n/;
1358 my $bar = qr/^foo${\}n/;
1360 Possible unintended interpolation of $\ in regex at - line 3.
1361 Possible unintended interpolation of $\ in regex at - line 5.
1364 use warnings 'syntax' ;
1368 no warnings 'syntax' ;
1373 Missing braces on \o{} at - line 3, within string
1374 Missing right brace on \o{ at - line 4, within string
1375 Empty \o{} at - line 5, within string
1376 BEGIN not safe after errors--compilation aborted at - line 6.
1379 use warnings 'digit' ;
1380 my $a = "\o{1238456}";
1381 no warnings 'digit' ;
1382 my $a = "\o{1238456}";
1384 Non-octal character '8'. Resolved as "\o{123}" at - line 3.
1388 print ref ? "yes\n" : "no\n" foreach [], ''; # ? is unambiguosly an operator
1395 $a =~ ?rand?; # ? is not a regex match
1397 syntax error at - line 3, near "=~ ?"
1398 Execution of - aborted due to compilation errors.
1402 if (ord('A') == 193) {
1403 print "SKIPPED\n# result varies depending on which ebcdic platform";
1410 no warnings 'syntax';
1414 "\c," is more clearly written simply as "l" at - line 9.
1415 "\c`" is more clearly written simply as "\ " at - line 10.
1419 if (ord('A') == 193) {
1420 print "SKIPPED\n# test is ASCII-specific";
1428 Use ";" instead of "\c{" at - line 9.
1432 if (ord('A') == 65) {
1433 print "SKIPPED\n# test is EBCDIC-specific";
1441 Sequence "\c{" invalid at - line 9.
1447 Character following "\c" must be printable ASCII at - line 2.
1450 use warnings 'syntax' ;
1456 no warnings 'syntax' ;
1459 Regexp modifiers "/d" and "/u" are mutually exclusive at - line 3, near "= "
1460 Regexp modifiers "/l" and "/a" are mutually exclusive at - line 4, near "= "
1461 Regexp modifier "/l" may not appear twice at - line 5, near "= "
1462 Regexp modifier "/a" may appear a maximum of twice at - line 7, near "= "
1463 BEGIN not safe after errors--compilation aborted at - line 8.
1467 eval "print q\xabfoo";
1469 $@ =~ /Can't find string terminator "\xab" anywhere before EOF/;
1475 use open qw( :utf8 :std );
1476 use warnings 'ambiguous' ;
1479 no warnings 'ambiguous' ;
1482 Ambiguous use of ${frèd} resolved to $frèd at - line 6.
1486 use open qw( :utf8 :std );
1487 use warnings 'ambiguous' ;
1490 no warnings 'ambiguous' ;
1493 Ambiguous use of ${f렏} resolved to $f렏 at - line 6.
1497 use open qw( :utf8 :std );
1501 CORE::렏 is not a keyword at - line 5.
1506 eval this_method_is_fake ();
1508 Undefined subroutine &main::this_method_is_fake called at - line 4.
1511 # [perl #107002] Erroneous ambiguity warnings
1512 sub { # do not actually call require
1513 require a::b . 1; # These used to produce erroneous
1514 require a::b + 1; # ambiguity warnings.
1519 # [perl #113094], [perl #119101], since reverted so no warnings generated
1521 print "aa" =~ m{^a\{1,2\}$}, "A\n";
1522 print "aa" =~ m{^a\x\{61\}$}, "B\n";
1523 print "a\\x{6F}" =~ m{^a\\x\{6F\}$}, "C\n";
1524 print "a\\o" =~ m{^a\\\x\{6F\}$}, "D\n";
1525 print "a\\\\x{6F}" =~ m{^a\\\\x\{6F\}$}, "E\n";
1526 print "a\\\\o" =~ m{^a\\\\\x\{6F\}$}, "F\n";
1527 print "aa" =~ m{^a{1,2}$}, "G\n";
1528 print "aq" =~ m[^a\[a-z\]$], "H\n";
1529 print "aq" =~ m(^a\(q\)$), "I\n";
1531 Illegal hexadecimal digit '\' ignored at - line 5.
1532 Illegal hexadecimal digit '\' ignored at - line 7.
1533 Illegal hexadecimal digit '\' ignored at - line 9.
1545 #[perl #119123] disallow literal control character variables
1548 }; # shouldn't warn on {\n, even though \n is a control character
1552 # [perl #120288] -X at start of line gave spurious warning, where X is not
1553 # a filetest operator
1559 # [perl #124113] Compile-time warning with UTF8 variable in array index
1564 my $v = $array[ 0 + $𝛃 ];
1565 $v = $array[ $𝛃 + 0 ];
1569 # Allow Unicode here doc boundaries
1572 my $v = <<EnFraçais;
1580 # Fix 'Use of "..." without parentheses is ambiguous' warning for
1581 # Unicode function names. If not under PERL_UNICODE, this will generate
1582 # a "Wide character" warning
1585 sub 𝛃(;$) { return 0; }
1589 (Wide character.*\n)?Warning: Use of "𝛃" without parentheses is ambiguous
1591 # RT #4346 Case 1: Warnings for print (...)
1592 # TODO RT #4346: Warnings for print(...) are inconsistent
1597 print (...) interpreted as function at - line 3.
1598 print (...) interpreted as function at - line 4.
1602 # RT #4346 Case 2: Warnings for print (...)
1607 print (...) interpreted as function at - line 3.
1608 print (...) interpreted as function at - line 4.
1612 # RT #4346 Case 3: Warnings for print (...)
1613 # TODO RT #4346: Warnings for print(...) are inconsistent
1618 print (...) interpreted as function at - line 3.
1619 print (...) interpreted as function at - line 4.
1623 # RT #4346 Case 4: Warnings for print (...)
1624 # TODO RT #4346: Warnings for print(...) are inconsistent
1629 print (...) interpreted as function at - line 3.
1630 print (...) interpreted as function at - line 4.
1634 # NAME Non-grapheme delimiters
1636 if (ord('A') == 193) {
1637 print "SKIPPED\n# ebcdic platforms generates different Malformed UTF-8 warnings.";
1642 my $a = qr ̂foobar̂;
1644 Use of unassigned code point or non-standalone grapheme for a delimiter is not allowed at - line 8, near "= "
1645 Use of unassigned code point or non-standalone grapheme for a delimiter is not allowed at - line 8, near "= "
1646 Execution of - aborted due to compilation errors.
1648 # NAME [perl #130567] Assertion failure
1650 if (ord('A') != 65) {
1651 print "SKIPPED\n# test is ASCII-specific";
1655 no warnings "uninitialized";
1658 s//"\x{180};;s\221(*$@$`\241\275";/gee;
1659 s//"s\221\302\302\302\302\302\302\302$@\241\275";/gee;
1662 # NAME [perl #130666] Assertion failure
1663 no warnings "uninitialized";
1664 BEGIN{$^H=-1};my $l; s
\0$0[$l]
\0\0
1667 # NAME [perl #129036] Assertion failure
1668 BEGIN{$0="";$^H=hex join""=>A00000}p?
1671 syntax error at - line 1, at EOF
1672 Execution of - aborted due to compilation errors.
1674 # NAME [perl #130655]