This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
say() should parse exactly like print()
[perl5.git] / t / lib / warnings / toke
CommitLineData
599cee73
PM
1toke.c AOK
2
3 we seem to have lost a few ambiguous warnings!!
4
5
599cee73
PM
6 $a = <<;
7 Use of comma-less variable list is deprecated
8 (called 3 times via depcom)
9
10 \1 better written as $1
4438c4b7 11 use warnings 'syntax' ;
599cee73
PM
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
599cee73
PM
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
599cee73
PM
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
767a6a26
PM
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 ;
ac206dc8
RGS
104
105 dump() better written as CORE::dump()
4ac733c9
MJD
106
107 Use of /c modifier is meaningless without /g
108
64e578a2
MJD
109 Use of /c modifier is meaningless in s///
110
0453d815
PM
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
599cee73
PM
126__END__
127# toke.c
a4f5cc89 128use warnings 'deprecated' ;
599cee73
PM
129format STDOUT =
130@<<< @||| @>>> @>>>
131$a $b "abc" 'def'
132.
4438c4b7 133no warnings 'deprecated' ;
0453d815
PM
134format STDOUT =
135@<<< @||| @>>> @>>>
136$a $b "abc" 'def'
137.
599cee73
PM
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.
599cee73
PM
142########
143# toke.c
4438c4b7 144use warnings 'deprecated' ;
599cee73
PM
145$a = <<;
146
4438c4b7 147no warnings 'deprecated' ;
0453d815
PM
148$a = <<;
149
599cee73
PM
150EXPECT
151Use of bare << to mean <<"" is deprecated at - line 3.
152########
153# toke.c
4438c4b7 154use warnings 'syntax' ;
599cee73 155s/(abc)/\1/;
4438c4b7 156no warnings 'syntax' ;
0453d815 157s/(abc)/\1/;
599cee73
PM
158EXPECT
159\1 better written as $1 at - line 3.
160########
161# toke.c
4438c4b7 162use warnings 'semicolon' ;
599cee73
PM
163$a = 1
164&time ;
4438c4b7 165no warnings 'semicolon' ;
0453d815
PM
166$a = 1
167&time ;
599cee73
PM
168EXPECT
169Semicolon seems to be missing at - line 3.
170########
171# toke.c
4438c4b7 172use warnings 'syntax' ;
599cee73
PM
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
7f01dc7a
JH
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.
599cee73
PM
197########
198# toke.c
4438c4b7 199no warnings 'syntax' ;
0453d815
PM
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
7f01dc7a
JH
211syntax error at - line 8, near "=."
212syntax error at - line 9, near "=^"
213syntax error at - line 10, near "=|"
214Unterminated <> operator at - line 11.
0453d815
PM
215########
216# toke.c
4438c4b7 217use warnings 'syntax' ;
599cee73 218my $a = $a[1,2] ;
4438c4b7 219no warnings 'syntax' ;
0453d815 220my $a = $a[1,2] ;
599cee73
PM
221EXPECT
222Multidimensional syntax $a[1,2] not supported at - line 3.
223########
224# toke.c
4438c4b7 225use warnings 'syntax' ;
599cee73 226sub fred {} ; $SIG{TERM} = fred;
4438c4b7 227no warnings 'syntax' ;
0453d815 228$SIG{TERM} = fred;
599cee73
PM
229EXPECT
230You need to quote "fred" at - line 3.
231########
232# toke.c
4438c4b7 233use warnings 'syntax' ;
599cee73
PM
234@a[3] = 2;
235@a{3} = 2;
4438c4b7 236no warnings 'syntax' ;
0453d815
PM
237@a[3] = 2;
238@a{3} = 2;
599cee73
PM
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
4438c4b7 244use warnings 'syntax' ;
599cee73
PM
245$_ = "ab" ;
246s/(ab)/\1/e;
4438c4b7 247no warnings 'syntax' ;
0453d815
PM
248$_ = "ab" ;
249s/(ab)/\1/e;
599cee73
PM
250EXPECT
251Can't use \1 to mean $1 in expression at - line 4.
252########
253# toke.c
4438c4b7 254use warnings 'reserved' ;
599cee73 255$a = abc;
1c3923b3
GS
256$a = { def
257
258=> 1 };
4438c4b7 259no warnings 'reserved' ;
0453d815 260$a = abc;
599cee73
PM
261EXPECT
262Unquoted string "abc" may clash with future reserved word at - line 3.
263########
264# toke.c
e476b1b5 265use warnings 'qw' ;
599cee73 266@a = qw(a, b, c) ;
e476b1b5 267no warnings 'qw' ;
0453d815 268@a = qw(a, b, c) ;
599cee73
PM
269EXPECT
270Possible attempt to separate words with commas at - line 3.
271########
272# toke.c
e476b1b5 273use warnings 'qw' ;
599cee73 274@a = qw(a b #) ;
e476b1b5 275no warnings 'qw' ;
0453d815 276@a = qw(a b #) ;
599cee73
PM
277EXPECT
278Possible attempt to put comments in qw() list at - line 3.
279########
280# toke.c
4438c4b7 281use warnings 'syntax' ;
599cee73
PM
282print ("")
283EXPECT
284print (...) interpreted as function at - line 3.
285########
286# toke.c
4438c4b7 287no warnings 'syntax' ;
0453d815
PM
288print ("")
289EXPECT
290
291########
292# toke.c
4438c4b7 293use warnings 'syntax' ;
599cee73
PM
294printf ("")
295EXPECT
296printf (...) interpreted as function at - line 3.
297########
298# toke.c
4438c4b7 299no warnings 'syntax' ;
0453d815
PM
300printf ("")
301EXPECT
302
303########
304# toke.c
4438c4b7 305use warnings 'syntax' ;
599cee73
PM
306sort ("")
307EXPECT
308sort (...) interpreted as function at - line 3.
309########
310# toke.c
4438c4b7 311no warnings 'syntax' ;
0453d815
PM
312sort ("")
313EXPECT
314
315########
316# toke.c
4438c4b7 317use warnings 'ambiguous' ;
599cee73 318$a = ${time[2]};
4438c4b7 319no warnings 'ambiguous' ;
0453d815 320$a = ${time[2]};
599cee73
PM
321EXPECT
322Ambiguous use of ${time[...]} resolved to $time[...] at - line 3.
323########
324# toke.c
4438c4b7 325use warnings 'ambiguous' ;
599cee73
PM
326$a = ${time{2}};
327EXPECT
328Ambiguous use of ${time{...}} resolved to $time{...} at - line 3.
329########
330# toke.c
4438c4b7 331no warnings 'ambiguous' ;
0453d815
PM
332$a = ${time{2}};
333EXPECT
334
335########
336# toke.c
4438c4b7 337use warnings 'ambiguous' ;
599cee73 338$a = ${time} ;
4438c4b7 339no warnings 'ambiguous' ;
0453d815 340$a = ${time} ;
599cee73
PM
341EXPECT
342Ambiguous use of ${time} resolved to $time at - line 3.
343########
344# toke.c
4438c4b7 345use warnings 'ambiguous' ;
599cee73
PM
346sub fred {}
347$a = ${fred} ;
4438c4b7 348no warnings 'ambiguous' ;
0453d815 349$a = ${fred} ;
599cee73
PM
350EXPECT
351Ambiguous use of ${fred} resolved to $fred at - line 4.
352########
353# toke.c
4438c4b7 354use warnings 'syntax' ;
7fd134d9
JH
355$a = _123; print "$a\n"; #( 3 string)
356$a = 1_23; print "$a\n";
357$a = 12_3; print "$a\n";
358$a = 123_; print "$a\n"; # 6
359$a = _+123; print "$a\n"; # 7 string)
360$a = +_123; print "$a\n"; #( 8 string)
361$a = +1_23; print "$a\n";
362$a = +12_3; print "$a\n";
363$a = +123_; print "$a\n"; # 11
364$a = _-123; print "$a\n"; #(12 string)
365$a = -_123; print "$a\n"; #(13 string)
366$a = -1_23; print "$a\n";
367$a = -12_3; print "$a\n";
368$a = -123_; print "$a\n"; # 16
369$a = 123._456; print "$a\n"; # 17
370$a = 123.4_56; print "$a\n";
371$a = 123.45_6; print "$a\n";
372$a = 123.456_; print "$a\n"; # 20
373$a = +123._456; print "$a\n"; # 21
374$a = +123.4_56; print "$a\n";
375$a = +123.45_6; print "$a\n";
376$a = +123.456_; print "$a\n"; # 24
377$a = -123._456; print "$a\n"; # 25
378$a = -123.4_56; print "$a\n";
379$a = -123.45_6; print "$a\n";
380$a = -123.456_; print "$a\n"; # 28
2bea9a37
JH
381$a = 123.456E_12; printf("%.0f\n", $a); # 29
382$a = 123.456E1_2; printf("%.0f\n", $a);
383$a = 123.456E12_; printf("%.0f\n", $a); # 31
384$a = 123.456E_+12; printf("%.0f\n", $a); # 32
385$a = 123.456E+_12; printf("%.0f\n", $a); # 33
386$a = 123.456E+1_2; printf("%.0f\n", $a);
387$a = 123.456E+12_; printf("%.0f\n", $a); # 35
7fd134d9
JH
388$a = 123.456E_-12; print "$a\n"; # 36
389$a = 123.456E-_12; print "$a\n"; # 37
390$a = 123.456E-1_2; print "$a\n";
391$a = 123.456E-12_; print "$a\n"; # 39
b3b48e3e
JH
392$a = 1__23; print "$a\n"; # 40
393$a = 12.3__4; print "$a\n"; # 41
2bea9a37 394$a = 12.34e1__2; printf("%.0f\n", $a); # 42
4438c4b7 395no warnings 'syntax' ;
7fd134d9
JH
396$a = _123; print "$a\n";
397$a = 1_23; print "$a\n";
398$a = 12_3; print "$a\n";
399$a = 123_; print "$a\n";
400$a = _+123; print "$a\n";
401$a = +_123; print "$a\n";
402$a = +1_23; print "$a\n";
403$a = +12_3; print "$a\n";
404$a = +123_; print "$a\n";
405$a = _-123; print "$a\n";
406$a = -_123; print "$a\n";
407$a = -1_23; print "$a\n";
408$a = -12_3; print "$a\n";
409$a = -123_; print "$a\n";
410$a = 123._456; print "$a\n";
411$a = 123.4_56; print "$a\n";
412$a = 123.45_6; print "$a\n";
413$a = 123.456_; print "$a\n";
414$a = +123._456; print "$a\n";
415$a = +123.4_56; print "$a\n";
416$a = +123.45_6; print "$a\n";
417$a = +123.456_; print "$a\n";
418$a = -123._456; print "$a\n";
419$a = -123.4_56; print "$a\n";
420$a = -123.45_6; print "$a\n";
421$a = -123.456_; print "$a\n";
2bea9a37
JH
422$a = 123.456E_12; printf("%.0f\n", $a);
423$a = 123.456E1_2; printf("%.0f\n", $a);
424$a = 123.456E12_; printf("%.0f\n", $a);
425$a = 123.456E_+12; printf("%.0f\n", $a);
426$a = 123.456E+_12; printf("%.0f\n", $a);
427$a = 123.456E+1_2; printf("%.0f\n", $a);
428$a = 123.456E+12_; printf("%.0f\n", $a);
7fd134d9
JH
429$a = 123.456E_-12; print "$a\n";
430$a = 123.456E-_12; print "$a\n";
431$a = 123.456E-1_2; print "$a\n";
432$a = 123.456E-12_; print "$a\n";
b3b48e3e
JH
433$a = 1__23; print "$a\n";
434$a = 12.3__4; print "$a\n";
2bea9a37 435$a = 12.34e1__2; printf("%.0f\n", $a);
599cee73 436EXPECT
fbfa96bd 437OPTIONS regex
928753ea 438Misplaced _ in number at - line 6.
928753ea 439Misplaced _ in number at - line 11.
7fd134d9 440Misplaced _ in number at - line 16.
928753ea 441Misplaced _ in number at - line 17.
7fd134d9 442Misplaced _ in number at - line 20.
928753ea 443Misplaced _ in number at - line 21.
7fd134d9
JH
444Misplaced _ in number at - line 24.
445Misplaced _ in number at - line 25.
446Misplaced _ in number at - line 28.
447Misplaced _ in number at - line 29.
448Misplaced _ in number at - line 31.
449Misplaced _ in number at - line 32.
450Misplaced _ in number at - line 33.
451Misplaced _ in number at - line 35.
452Misplaced _ in number at - line 36.
453Misplaced _ in number at - line 37.
454Misplaced _ in number at - line 39.
b3b48e3e
JH
455Misplaced _ in number at - line 40.
456Misplaced _ in number at - line 41.
457Misplaced _ in number at - line 42.
928753ea
JH
458_123
459123
928753ea 460123
7fd134d9
JH
461123
462123
463_123
464123
465123
466123
467-123
468-_123
469-123
470-123
471-123
472123.456
473123.456
474123.456
475123.456
476123.456
477123.456
478123.456
479123.456
480-123.456
481-123.456
482-123.456
483-123.456
484123456000000000
485123456000000000
486123456000000000
487123456000000000
488123456000000000
489123456000000000
490123456000000000
fbfa96bd
NIS
4911.23456e-0?10
4921.23456e-0?10
4931.23456e-0?10
4941.23456e-0?10
b3b48e3e
JH
495123
49612.34
49712340000000000
7fd134d9
JH
498_123
499123
500123
501123
502123
503_123
504123
505123
506123
507-123
508-_123
509-123
510-123
511-123
512123.456
513123.456
514123.456
515123.456
516123.456
928753ea
JH
517123.456
518123.456
928753ea 519123.456
7fd134d9
JH
520-123.456
521-123.456
522-123.456
523-123.456
524123456000000000
525123456000000000
526123456000000000
527123456000000000
528123456000000000
529123456000000000
530123456000000000
fbfa96bd
NIS
5311.23456e-0?10
5321.23456e-0?10
5331.23456e-0?10
5341.23456e-0?10
b3b48e3e
JH
535123
53612.34
53712340000000000
599cee73
PM
538########
539# toke.c
e476b1b5 540use warnings 'bareword' ;
60e6418e 541#line 25 "bar"
599cee73 542$a = FRED:: ;
e476b1b5 543no warnings 'bareword' ;
0453d815
PM
544#line 25 "bar"
545$a = FRED:: ;
599cee73 546EXPECT
60e6418e 547Bareword "FRED::" refers to nonexistent package at bar line 25.
599cee73
PM
548########
549# toke.c
4438c4b7 550use warnings 'ambiguous' ;
599cee73 551sub time {}
0453d815 552my $a = time() ;
4438c4b7 553no warnings 'ambiguous' ;
0453d815 554my $b = time() ;
599cee73
PM
555EXPECT
556Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
557########
558# toke.c
26d16222 559use warnings ;
0453d815 560eval <<'EOE';
df0deb90
GS
561# line 30 "foo"
562warn "yelp";
0453d815 563{
0453d815
PM
564 $_ = " \x{123} " ;
565}
566EOE
567EXPECT
df0deb90 568yelp at foo line 30.
0453d815
PM
569########
570# toke.c
0453d815
PM
571my $a = rand + 4 ;
572EXPECT
2d5ccbba 573Warning: Use of "rand" without parentheses is ambiguous at - line 2.
0453d815
PM
574########
575# toke.c
576$^W = 0 ;
577my $a = rand + 4 ;
578{
4438c4b7 579 no warnings 'ambiguous' ;
0453d815 580 $a = rand + 4 ;
4438c4b7 581 use warnings 'ambiguous' ;
0453d815
PM
582 $a = rand + 4 ;
583}
584$a = rand + 4 ;
585EXPECT
2d5ccbba
IT
586Warning: Use of "rand" without parentheses is ambiguous at - line 3.
587Warning: Use of "rand" without parentheses is ambiguous at - line 8.
588Warning: Use of "rand" without parentheses is ambiguous at - line 10.
0453d815
PM
589########
590# toke.c
e8ae98db
RGS
591use warnings "ambiguous";
592print for keys %+; # should not warn
593EXPECT
594########
595# toke.c
0453d815
PM
596sub fred {};
597-fred ;
598EXPECT
599Ambiguous use of -fred resolved as -&fred() at - line 3.
600########
601# toke.c
602$^W = 0 ;
603sub fred {} ;
604-fred ;
605{
4438c4b7 606 no warnings 'ambiguous' ;
0453d815 607 -fred ;
4438c4b7 608 use warnings 'ambiguous' ;
0453d815
PM
609 -fred ;
610}
611-fred ;
612EXPECT
613Ambiguous use of -fred resolved as -&fred() at - line 4.
614Ambiguous use of -fred resolved as -&fred() at - line 9.
615Ambiguous use of -fred resolved as -&fred() at - line 11.
616########
617# toke.c
618open FOO || time;
619EXPECT
620Precedence problem: open FOO should be open(FOO) at - line 2.
621########
66fbe8fb
HS
622# toke.c (and [perl #16184])
623open FOO => "<&0"; close FOO;
624EXPECT
625########
0453d815
PM
626# toke.c
627$^W = 0 ;
628open FOO || time;
629{
e476b1b5 630 no warnings 'precedence' ;
0453d815 631 open FOO || time;
e476b1b5 632 use warnings 'precedence' ;
0453d815
PM
633 open FOO || time;
634}
635open FOO || time;
636EXPECT
637Precedence problem: open FOO should be open(FOO) at - line 3.
638Precedence problem: open FOO should be open(FOO) at - line 8.
639Precedence problem: open FOO should be open(FOO) at - line 10.
640########
641# toke.c
642$^W = 0 ;
643*foo *foo ;
644{
4438c4b7 645 no warnings 'ambiguous' ;
0453d815 646 *foo *foo ;
4438c4b7 647 use warnings 'ambiguous' ;
0453d815
PM
648 *foo *foo ;
649}
650*foo *foo ;
651EXPECT
652Operator or semicolon missing before *foo at - line 3.
653Ambiguous use of * resolved as operator * at - line 3.
654Operator or semicolon missing before *foo at - line 8.
655Ambiguous use of * resolved as operator * at - line 8.
656Operator or semicolon missing before *foo at - line 10.
657Ambiguous use of * resolved as operator * at - line 10.
767a6a26
PM
658########
659# toke.c
e476b1b5 660use warnings 'misc' ;
767a6a26 661my $a = "\m" ;
e476b1b5 662no warnings 'misc' ;
767a6a26
PM
663$a = "\m" ;
664EXPECT
665Unrecognized escape \m passed through at - line 3.
666########
667# toke.c
668use warnings 'portable' ;
669my $a = 0b011111111111111111111111111111110 ;
670 $a = 0b011111111111111111111111111111111 ;
671 $a = 0b111111111111111111111111111111111 ;
672 $a = 0x0fffffffe ;
673 $a = 0x0ffffffff ;
674 $a = 0x1ffffffff ;
675 $a = 0037777777776 ;
676 $a = 0037777777777 ;
677 $a = 0047777777777 ;
678no warnings 'portable' ;
679 $a = 0b011111111111111111111111111111110 ;
680 $a = 0b011111111111111111111111111111111 ;
681 $a = 0b111111111111111111111111111111111 ;
682 $a = 0x0fffffffe ;
683 $a = 0x0ffffffff ;
684 $a = 0x1ffffffff ;
685 $a = 0037777777776 ;
686 $a = 0037777777777 ;
687 $a = 0047777777777 ;
688EXPECT
689Binary number > 0b11111111111111111111111111111111 non-portable at - line 5.
690Hexadecimal number > 0xffffffff non-portable at - line 8.
691Octal number > 037777777777 non-portable at - line 11.
692########
693# toke.c
694use warnings 'overflow' ;
695my $a = 0b011111111111111111111111111111110 ;
696 $a = 0b011111111111111111111111111111111 ;
15041a67 697 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26
PM
698 $a = 0x0fffffffe ;
699 $a = 0x0ffffffff ;
15041a67 700 $a = 0x10000000000000000 ;
767a6a26
PM
701 $a = 0037777777776 ;
702 $a = 0037777777777 ;
15041a67 703 $a = 002000000000000000000000;
767a6a26
PM
704no warnings 'overflow' ;
705 $a = 0b011111111111111111111111111111110 ;
706 $a = 0b011111111111111111111111111111111 ;
15041a67 707 $a = 0b10000000000000000000000000000000000000000000000000000000000000000 ;
767a6a26
PM
708 $a = 0x0fffffffe ;
709 $a = 0x0ffffffff ;
15041a67 710 $a = 0x10000000000000000 ;
767a6a26
PM
711 $a = 0037777777776 ;
712 $a = 0037777777777 ;
15041a67 713 $a = 002000000000000000000000;
767a6a26
PM
714EXPECT
715Integer overflow in binary number at - line 5.
716Integer overflow in hexadecimal number at - line 8.
717Integer overflow in octal number at - line 11.
8593bda5
GS
718########
719# toke.c
ac206dc8
RGS
720BEGIN { $^C = 1; }
721use warnings 'misc';
722dump;
723CORE::dump;
724EXPECT
725dump() better written as CORE::dump() at - line 4.
726- syntax OK
727########
728# toke.c
729use warnings 'misc';
730use subs qw/dump/;
731sub dump { print "no warning for overriden dump\n"; }
732dump;
733EXPECT
734no warning for overriden dump
735########
736# toke.c
8593bda5
GS
737use warnings 'ambiguous';
738"@mjd_previously_unused_array";
739no warnings 'ambiguous';
740"@mjd_previously_unused_array";
741EXPECT
742Possible unintended interpolation of @mjd_previously_unused_array in string at - line 3.
707afd92
MS
743########
744# toke.c
d8c55666 745# 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
4ac733c9
MJD
746use warnings 'regexp';
747"foo" =~ /foo/c;
64e578a2 748"foo" =~ /foo/cg;
4ac733c9
MJD
749no warnings 'regexp';
750"foo" =~ /foo/c;
64e578a2 751"foo" =~ /foo/cg;
4ac733c9
MJD
752EXPECT
753Use of /c modifier is meaningless without /g at - line 4.
754########
755# toke.c
d8c55666 756# 20020328 mjd-perl-patch+@plover.com at behest of jfriedl@yahoo.com
4ac733c9
MJD
757use warnings 'regexp';
758$_ = "ab" ;
759s/ab/ab/c;
64e578a2 760s/ab/ab/cg;
4ac733c9
MJD
761no warnings 'regexp';
762s/ab/ab/c;
64e578a2 763s/ab/ab/cg;
4ac733c9 764EXPECT
64e578a2
MJD
765Use of /c modifier is meaningless in s/// at - line 5.
766Use of /c modifier is meaningless in s/// at - line 6.
d8c55666
MJD
767########
768-wa
769# toke.c
770# 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
771print "@F\n";
772EXPECT
773
774########
775-w
776# toke.c
777# 20020414 mjd-perl-patch+@plover.com # -a flag should suppress these warnings
778print "@F\n";
779EXPECT
780Possible unintended interpolation of @F in string at - line 4.
781Name "main::F" used only once: possible typo at - line 4.
782########
783-wa
784# toke.c
785# 20020414 mjd-perl-patch+@plover.com
786EXPECT
787
2710853f
MJD
788########
789# toke.c
790# 20020414 mjd-perl-patch+@plover.com
791# In 5.7.3, this emitted "Possible unintended interpolation" warnings
792use warnings 'ambiguous';
793$s = "(@-)(@+)";
794EXPECT
795
56da5a46
RGS
796########
797# toke.c
798# mandatory warning
799eval q/if ($a) { } elseif ($b) { }/;
800no warnings "syntax";
801eval q/if ($a) { } elseif ($b) { }/;
802EXPECT
803elseif should be elsif at (eval 1) line 1.
804########
805# toke.c
806# mandatory warning
807eval q/5 6/;
808no warnings "syntax";
809eval q/5 6/;
810EXPECT
811Number found where operator expected at (eval 1) line 1, near "5 6"
812 (Missing operator before 6?)
984200d0
YST
813########
814# toke.c
815use warnings "syntax";
816$_ = $a = 1;
817$a !=~ /1/;
818$a !=~ m#1#;
819$a !=~/1/;
820$a !=~ ?/?;
decca21c
YST
821$a !=~ y/1//;
822$a !=~ tr/1//;
823$a !=~ s/1//;
984200d0
YST
824$a != ~/1/;
825no warnings "syntax";
826$a !=~ /1/;
827$a !=~ m#1#;
828$a !=~/1/;
829$a !=~ ?/?;
decca21c
YST
830$a !=~ y/1//;
831$a !=~ tr/1//;
832$a !=~ s/1//;
984200d0
YST
833EXPECT
834!=~ should be !~ at - line 4.
835!=~ should be !~ at - line 5.
836!=~ should be !~ at - line 6.
837!=~ should be !~ at - line 7.
decca21c
YST
838!=~ should be !~ at - line 8.
839!=~ should be !~ at - line 9.
840!=~ should be !~ at - line 10.
1108974d
RGS
841########
842# toke.c
843our $foo :unique;
844use warnings 'deprecated';
845our $bar :unique;
846EXPECT
847Use of :unique is deprecated at - line 4.