This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Correct stupidities in 4c3ac4b
[perl5.git] / t / lib / warnings / 9uninit
1 DAPM 4/2004.
2
3 Test the appearance of variable names in "Use of uninitialized value"
4 warnings.
5
6 The following ops aren't tested, mainly because they do IO or non-portable
7 stuff:
8
9     send recv bind conect listen accept shutdown chdir chown chroot unlink
10     chmod utime rename link symlink readlink mkdir rmdir opendir seekdir
11     system exec kill getpgrp alarm sleep dofile require gethostbyname
12     gethostbyaddr getnetbyname getnetbyaddr getprotobyname getprotobynumber
13     getservbyname getservbyport sethostent setnetent setprotoent setservent
14     getpwnam getpwuid getgrnam getgrgid waitpid setpgrp setpriority
15     getpriority syscall dbmopen ioctl fcntl truncate getsockopt setsockopt
16     semctl semop semget msgget msgctl msgsnd msgrcv shmget shmctl shmread
17     shmwrite
18
19     ---------------------------------------------------
20
21
22 __END__
23 use warnings 'uninitialized';
24 my ($m1, $m2, $v);
25
26 $v = $m1 + 10;
27 $v = 22 + $m2;
28 $v = $m1 + $m2;
29 EXPECT
30 Use of uninitialized value $m1 in addition (+) at - line 4.
31 Use of uninitialized value $m2 in addition (+) at - line 5.
32 Use of uninitialized value $m2 in addition (+) at - line 6.
33 Use of uninitialized value $m1 in addition (+) at - line 6.
34 ########
35 use warnings 'uninitialized';
36 my ($m1, $v);
37 our ($g1, $g2);
38
39 $v = $g1 + 21;
40 $v = 31 + $g2;
41 $v = $g1 + $g2;
42 $v = $m1 + $g2;
43 EXPECT
44 Use of uninitialized value $g1 in addition (+) at - line 5.
45 Use of uninitialized value $g2 in addition (+) at - line 6.
46 Use of uninitialized value $g2 in addition (+) at - line 7.
47 Use of uninitialized value $g1 in addition (+) at - line 7.
48 Use of uninitialized value $g2 in addition (+) at - line 8.
49 Use of uninitialized value $m1 in addition (+) at - line 8.
50 ########
51 use warnings 'uninitialized';
52 my ($m1, @ma, $v);
53
54 $v = $ma[5] + 45;
55 $v = 56 + $ma[6];
56 $v = $ma[7] + $m1;
57 $v = $ma[8] + $ma[9];
58 $v = $ma[-1] + $ma[-2];
59 EXPECT
60 Use of uninitialized value $ma[5] in addition (+) at - line 4.
61 Use of uninitialized value $ma[6] in addition (+) at - line 5.
62 Use of uninitialized value $m1 in addition (+) at - line 6.
63 Use of uninitialized value in addition (+) at - line 6.
64 Use of uninitialized value in addition (+) at - line 7.
65 Use of uninitialized value in addition (+) at - line 7.
66 Use of uninitialized value in addition (+) at - line 8.
67 Use of uninitialized value in addition (+) at - line 8.
68 ########
69 use warnings 'uninitialized';
70 my ($v);
71 my @mau = (undef) x 258;
72 my %mhu = ('foo', undef, 'bar', undef);
73
74 $v = $mau[5] + 23;
75 $v = $mau[-5] + 45;
76 $v = 56 + $mau[6];
77 $v = 78 + $mau[-6];
78 $v = $mau[7] + $mau[8];
79 $v = $mau[256] + $mau[257];
80 $v = $mau[-1] + $mau[-2];
81 $v = $mhu{foo} + $mhu{bar};
82 EXPECT
83 Use of uninitialized value $mau[5] in addition (+) at - line 6.
84 Use of uninitialized value $mau[-5] in addition (+) at - line 7.
85 Use of uninitialized value $mau[6] in addition (+) at - line 8.
86 Use of uninitialized value $mau[-6] in addition (+) at - line 9.
87 Use of uninitialized value $mau[8] in addition (+) at - line 10.
88 Use of uninitialized value $mau[7] in addition (+) at - line 10.
89 Use of uninitialized value $mau[257] in addition (+) at - line 11.
90 Use of uninitialized value $mau[256] in addition (+) at - line 11.
91 Use of uninitialized value $mau[-2] in addition (+) at - line 12.
92 Use of uninitialized value $mau[-1] in addition (+) at - line 12.
93 Use of uninitialized value $mhu{"bar"} in addition (+) at - line 13.
94 Use of uninitialized value $mhu{"foo"} in addition (+) at - line 13.
95 ########
96 use warnings 'uninitialized';
97 my ($v);
98 our (@ga);
99
100 $v = $ga[8] + 21;
101 $v = $ga[-8] + 46;
102 $v = 57 + $ga[9];
103 $v = 58 + $ga[-9];
104 $v = $ga[10] + $ga[11];
105 $v = $ga[-10] + $ga[-11];
106 EXPECT
107 Use of uninitialized value $ga[8] in addition (+) at - line 5.
108 Use of uninitialized value $ga[-8] in addition (+) at - line 6.
109 Use of uninitialized value $ga[9] in addition (+) at - line 7.
110 Use of uninitialized value $ga[-9] in addition (+) at - line 8.
111 Use of uninitialized value in addition (+) at - line 9.
112 Use of uninitialized value in addition (+) at - line 9.
113 Use of uninitialized value in addition (+) at - line 10.
114 Use of uninitialized value in addition (+) at - line 10.
115 ########
116 use warnings 'uninitialized';
117 my ($v);
118 our @gau = (undef) x 258;
119 our %ghu = ('foo', undef, 'bar', undef);
120
121 $v = $gau[8] + 46;
122 $v = $gau[-8] + 47;
123 $v = 57 + $gau[9];
124 $v = 57 + $gau[-9];
125 $v = $gau[10] + $gau[11];
126 $v = $gau[256] + $gau[257];
127 $v = $gau[-1] + $gau[-2];
128 $v = $ghu{foo} + $ghu{bar};
129 EXPECT
130 Use of uninitialized value $gau[8] in addition (+) at - line 6.
131 Use of uninitialized value $gau[-8] in addition (+) at - line 7.
132 Use of uninitialized value $gau[9] in addition (+) at - line 8.
133 Use of uninitialized value $gau[-9] in addition (+) at - line 9.
134 Use of uninitialized value $gau[11] in addition (+) at - line 10.
135 Use of uninitialized value $gau[10] in addition (+) at - line 10.
136 Use of uninitialized value $gau[257] in addition (+) at - line 11.
137 Use of uninitialized value $gau[256] in addition (+) at - line 11.
138 Use of uninitialized value $gau[-2] in addition (+) at - line 12.
139 Use of uninitialized value $gau[-1] in addition (+) at - line 12.
140 Use of uninitialized value $ghu{"bar"} in addition (+) at - line 13.
141 Use of uninitialized value $ghu{"foo"} in addition (+) at - line 13.
142 ########
143 use warnings 'uninitialized';
144 my ($v);
145 our @gau = (undef) x 258;
146 our %ghu = ('foo', undef, 'bar', undef);
147 my @mau = (undef) x 258;
148 my %mhu = ('foo', undef, 'bar', undef);
149
150 my $i1 = 10;
151 my $i2 = 20;
152 my $i3 = 2000;
153 my $k1 = 'foo';
154 my $k2 = 'bar';
155 my $k3 = 'baz';
156 $v = $mau[$i1] + $mau[$i2];
157 $v = $gau[$i1] + $gau[$i2];
158 $v = $gau[$i1] + $gau[$i3];
159 $v = $mhu{$k1} + $mhu{$k2};
160 $v = $ghu{$k1} + $ghu{$k2};
161 $v = $ghu{$k1} + $ghu{$k3};
162 EXPECT
163 Use of uninitialized value $mau[20] in addition (+) at - line 14.
164 Use of uninitialized value $mau[10] in addition (+) at - line 14.
165 Use of uninitialized value $gau[20] in addition (+) at - line 15.
166 Use of uninitialized value $gau[10] in addition (+) at - line 15.
167 Use of uninitialized value in addition (+) at - line 16.
168 Use of uninitialized value $gau[10] in addition (+) at - line 16.
169 Use of uninitialized value $mhu{"bar"} in addition (+) at - line 17.
170 Use of uninitialized value $mhu{"foo"} in addition (+) at - line 17.
171 Use of uninitialized value $ghu{"bar"} in addition (+) at - line 18.
172 Use of uninitialized value $ghu{"foo"} in addition (+) at - line 18.
173 Use of uninitialized value in addition (+) at - line 19.
174 Use of uninitialized value $ghu{"foo"} in addition (+) at - line 19.
175 ########
176 use warnings 'uninitialized';
177 my ($m1, $m2, @ma, %mh, $v);
178 our ($g1, $g2, @ga, %gh);
179
180 $v = $ma[$m1];
181 $v = $ma[$g1];
182 $v = $ga[$m2];
183 $v = $ga[$g2];
184
185 $v = $mh{$m1};
186 $v = $mh{$g1};
187 $v = $gh{$m2};
188 $v = $gh{$g2};
189
190 $v = $m1+($m2-$g1);
191 $v = $ma[$ga[3]];
192 $v = $ga[$ma[4]];
193 EXPECT
194 Use of uninitialized value $m1 in array element at - line 5.
195 Use of uninitialized value $g1 in array element at - line 6.
196 Use of uninitialized value $m2 in array element at - line 7.
197 Use of uninitialized value $g2 in array element at - line 8.
198 Use of uninitialized value $m1 in hash element at - line 10.
199 Use of uninitialized value $g1 in hash element at - line 11.
200 Use of uninitialized value $m2 in hash element at - line 12.
201 Use of uninitialized value $g2 in hash element at - line 13.
202 Use of uninitialized value $g1 in subtraction (-) at - line 15.
203 Use of uninitialized value $m2 in subtraction (-) at - line 15.
204 Use of uninitialized value $m1 in addition (+) at - line 15.
205 Use of uninitialized value $ga[3] in array element at - line 16.
206 Use of uninitialized value $ma[4] in array element at - line 17.
207 ########
208 use warnings 'uninitialized';
209 my (@ma, %mh, $v);
210 our (@ga, %gh);
211
212 $v = sin $ga[1000];
213 $v = sin $ma[1000];
214 $v = sin $gh{foo};
215 $v = sin $mh{bar};
216
217 $v = sin $ga[$$];
218 $v = sin $ma[$$];
219 $v = sin $gh{$$};
220 $v = sin $mh{$$};
221 EXPECT
222 Use of uninitialized value $ga[1000] in sin at - line 5.
223 Use of uninitialized value $ma[1000] in sin at - line 6.
224 Use of uninitialized value $gh{"foo"} in sin at - line 7.
225 Use of uninitialized value $mh{"bar"} in sin at - line 8.
226 Use of uninitialized value within @ga in sin at - line 10.
227 Use of uninitialized value within @ma in sin at - line 11.
228 Use of uninitialized value within %gh in sin at - line 12.
229 Use of uninitialized value within %mh in sin at - line 13.
230 ########
231 use warnings 'uninitialized';
232 my (@mat, %mht, $v);
233 sub X::TIEARRAY { bless [], 'X' }
234 sub X::TIEHASH { bless [], 'X' }
235 sub X::FETCH { undef }
236 tie @mat, 'X';
237 tie %mht, 'X';
238 my $key1 = 'akey';
239 my $key2 = 'bkey';
240 my $index1 = 33;
241 my $index2 = 55;
242
243 $v = sin $mat[0];
244 $v = $mat[0] + $mat[1];
245 $v = sin $mat[1000];
246 $v = $mat[1000] + $mat[1001];
247
248 $v = sin $mat[$index1];
249 $v = $mat[$index1] + $mat[$index2];
250
251 $v = sin $mht{foo};
252 $v = $mht{foo} + $mht{bar};
253
254 $v = sin $mht{$key1};
255 $v = $mht{$key1} + $mht{$key2};
256
257 $v = $1+1;
258 EXPECT
259 Use of uninitialized value $mat[0] in sin at - line 13.
260 Use of uninitialized value in addition (+) at - line 14.
261 Use of uninitialized value in addition (+) at - line 14.
262 Use of uninitialized value $mat[1000] in sin at - line 15.
263 Use of uninitialized value in addition (+) at - line 16.
264 Use of uninitialized value in addition (+) at - line 16.
265 Use of uninitialized value within @mat in sin at - line 18.
266 Use of uninitialized value in addition (+) at - line 19.
267 Use of uninitialized value in addition (+) at - line 19.
268 Use of uninitialized value $mht{"foo"} in sin at - line 21.
269 Use of uninitialized value in addition (+) at - line 22.
270 Use of uninitialized value in addition (+) at - line 22.
271 Use of uninitialized value within %mht in sin at - line 24.
272 Use of uninitialized value in addition (+) at - line 25.
273 Use of uninitialized value in addition (+) at - line 25.
274 Use of uninitialized value $1 in addition (+) at - line 27.
275 ########
276 use warnings 'uninitialized';
277 my ($m1);
278 our ($g1, @ga);
279
280 print $ga[1000];
281 print STDERR $ga[1000];
282 print STDERR $m1, $g1, $ga[1],$m2;
283 print STDERR "", $ga[1],"";
284 EXPECT
285 Use of uninitialized value in print at - line 5.
286 Use of uninitialized value in print at - line 6.
287 Use of uninitialized value $m1 in print at - line 7.
288 Use of uninitialized value $g1 in print at - line 7.
289 Use of uninitialized value in print at - line 7.
290 Use of uninitialized value $m2 in print at - line 7.
291 Use of uninitialized value in print at - line 8.
292 ########
293 use warnings 'uninitialized';
294 my ($m1);
295 our ($g1);
296
297 close $m1;      # exercises rv2gv
298 close $g1;      # exercises rv2gv
299 EXPECT
300 Use of uninitialized value $m1 in ref-to-glob cast at - line 5.
301 Use of uninitialized value $g1 in ref-to-glob cast at - line 6.
302 ########
303 use warnings 'uninitialized';
304 my ($m1, $m2, $v);
305 our ($g1, $g2);
306
307 $v = $$m1;
308 $v = $$g1;
309
310 $v = @$m1;
311 $v = @$g1;
312 $v = %$m2;
313 $v = %$g2;
314
315 $v = ${"foo.bar"}+1;
316 $v = ${"foo$m1"}+1;
317 $v = ${"foo$g1"}+1;
318 EXPECT
319 Use of uninitialized value $m1 in scalar dereference at - line 5.
320 Use of uninitialized value $g1 in scalar dereference at - line 6.
321 Use of uninitialized value $m1 in array dereference at - line 8.
322 Use of uninitialized value $g1 in array dereference at - line 9.
323 Use of uninitialized value $m2 in hash dereference at - line 10.
324 Use of uninitialized value $g2 in hash dereference at - line 11.
325 Use of uninitialized value in addition (+) at - line 13.
326 Use of uninitialized value $m1 in concatenation (.) or string at - line 14.
327 Use of uninitialized value in addition (+) at - line 14.
328 Use of uninitialized value $g1 in concatenation (.) or string at - line 15.
329 Use of uninitialized value in addition (+) at - line 15.
330 ########
331 use warnings 'uninitialized';
332 my ($m1, $v);
333 our ($g1);
334
335 $v = $m1 | $m2;
336 $v = $m1 & $m2;
337 $v = $m1 ^ $m2;
338 $v = ~$m1;
339
340 $v = $g1 | $g2;
341 $v = $g1 & $g2;
342 $v = $g1 ^ $g2;
343 $v = ~$g1;
344 EXPECT
345 Use of uninitialized value $m1 in bitwise or (|) at - line 5.
346 Use of uninitialized value $m2 in bitwise or (|) at - line 5.
347 Use of uninitialized value $m1 in bitwise and (&) at - line 6.
348 Use of uninitialized value $m2 in bitwise and (&) at - line 6.
349 Use of uninitialized value $m1 in bitwise xor (^) at - line 7.
350 Use of uninitialized value $m2 in bitwise xor (^) at - line 7.
351 Use of uninitialized value $m1 in 1's complement (~) at - line 8.
352 Use of uninitialized value $g1 in bitwise or (|) at - line 10.
353 Use of uninitialized value $g2 in bitwise or (|) at - line 10.
354 Use of uninitialized value $g1 in bitwise and (&) at - line 11.
355 Use of uninitialized value $g2 in bitwise and (&) at - line 11.
356 Use of uninitialized value $g1 in bitwise xor (^) at - line 12.
357 Use of uninitialized value $g2 in bitwise xor (^) at - line 12.
358 Use of uninitialized value $g1 in 1's complement (~) at - line 13.
359 ########
360 use warnings 'uninitialized';
361 my ($v);
362
363 my  $tmp1; $v = $tmp1++; # (doesn't warn)
364 our $tmp2; $v = $tmp2++; # (doesn't warn)
365 my  $tmp3; $v = ++$tmp1; # (doesn't warn)
366 our $tmp4; $v = ++$tmp2; # (doesn't warn)
367
368 my  $tmp5; $v = $tmp5--; # (doesn't warn)
369 our $tmp6; $v = $tmp6--; # (doesn't warn)
370 my  $tmp7; $v = --$tmp7; # (doesn't warn)
371 our $tmp8; $v = --$tmp8; # (doesn't warn)
372 EXPECT
373 ########
374 use warnings 'uninitialized';
375
376 my $s1; chomp $s1;
377 my $s2; chop  $s2;
378 my ($s3,$s4); chomp ($s3,$s4);
379 my ($s5,$s6); chop  ($s5,$s6);
380 EXPECT
381 Use of uninitialized value $s1 in scalar chomp at - line 3.
382 Use of uninitialized value $s2 in scalar chop at - line 4.
383 Use of uninitialized value $s3 in chomp at - line 5.
384 Use of uninitialized value $s4 in chomp at - line 5.
385 Use of uninitialized value $s5 in chop at - line 6.
386 Use of uninitialized value $s6 in chop at - line 6.
387 ########
388 use warnings 'uninitialized';
389 my ($m1);
390
391 local $/ =\$m1;
392 my $x = "abc";
393 chomp $x; chop $x;
394 my $y;
395 chomp ($x, $y); chop ($x, $y);
396 EXPECT
397 Use of uninitialized value ${$/} in scalar chomp at - line 6.
398 Use of uninitialized value ${$/} in chomp at - line 8.
399 Use of uninitialized value ${$/} in chomp at - line 8.
400 Use of uninitialized value $y in chomp at - line 8.
401 Use of uninitialized value $y in chop at - line 8.
402 ########
403 use warnings 'uninitialized';
404 my ($m1, @ma, %mh);
405 our ($g1);
406
407 delete $ma[$m1];
408 delete @ma[$m1, $g1];
409 delete $mh{$m1};
410 delete @mh{$m1, $g1};
411 EXPECT
412 Use of uninitialized value $m1 in delete at - line 5.
413 Use of uninitialized value $m1 in delete at - line 6.
414 Use of uninitialized value $g1 in delete at - line 6.
415 Use of uninitialized value $m1 in delete at - line 7.
416 Use of uninitialized value $m1 in delete at - line 8.
417 Use of uninitialized value $g1 in delete at - line 8.
418 ########
419 use warnings 'uninitialized';
420 my ($m1, @ma, %mh);
421 our ($g1);
422
423 my @a = @ma[$m1, $g1];
424 @a = (4,5)[$m1, $g1];
425 @a = @mh{$m1, $g1};
426 EXPECT
427 Use of uninitialized value $m1 in array slice at - line 5.
428 Use of uninitialized value $g1 in array slice at - line 5.
429 Use of uninitialized value $m1 in list slice at - line 6.
430 Use of uninitialized value $g1 in list slice at - line 6.
431 Use of uninitialized value $m1 in hash slice at - line 7.
432 Use of uninitialized value $g1 in hash slice at - line 7.
433 ########
434 use warnings 'uninitialized';
435 my ($m1, @ma, %mh, $v);
436 our ($g1, @ga, %gh);
437
438 $v = exists $ma[$m1];
439 $v = exists $ga[$g1];
440 $v = exists $mh{$m1};
441 $v = exists $gh{$g1};
442 EXPECT
443 Use of uninitialized value $m1 in exists at - line 5.
444 Use of uninitialized value $g1 in exists at - line 6.
445 Use of uninitialized value $m1 in exists at - line 7.
446 Use of uninitialized value $g1 in exists at - line 8.
447 ########
448 use warnings 'uninitialized';
449 my ($m1, $m2);
450 my ($v, @a);
451 my ($t, $u) = (1, 1);
452
453 local $.;
454
455 @ma = (1   .. 2);
456 @ma = ($t  .. 2);
457 @ma = ($m1 .. 2);
458 @ma = (1   .. $u);
459 @ma = (1   .. $m2);
460
461 @ma = (1   ... 2);
462 @ma = ($t  ... 2);
463 @ma = ($m1 ... 2);
464 @ma = (1   ... $u);
465 @ma = (1   ... $m2);
466
467 $v = (1   .. 2);
468 $v = ($t  .. 2);
469 $v = ($m1 .. 2);
470 $v = (1   .. $u);
471 $v = (1   .. $m2);
472
473 $v = (1   ... 2);
474 $v = ($t  ... 2);
475 $v = ($m1 ... 2);
476 $v = (1   ... $u);
477 $v = (1   ... $m2);
478 EXPECT
479 Use of uninitialized value $m1 in range (or flop) at - line 10.
480 Use of uninitialized value $m2 in range (or flop) at - line 12.
481 Use of uninitialized value $m1 in range (or flop) at - line 16.
482 Use of uninitialized value $m2 in range (or flop) at - line 18.
483 Use of uninitialized value $. in range (or flip) at - line 20.
484 Use of uninitialized value $. in range (or flop) at - line 21.
485 Use of uninitialized value $. in range (or flip) at - line 23.
486 Use of uninitialized value $. in range (or flip) at - line 24.
487 Use of uninitialized value $. in range (or flip) at - line 26.
488 Use of uninitialized value $. in range (or flip) at - line 29.
489 Use of uninitialized value $. in range (or flip) at - line 30.
490 ########
491 use warnings 'uninitialized';
492 my ($m1, $m2);
493 my ($v, @a);
494 my ($t, $u) = (1, 1);
495
496 @ma = ($t  .. $u);
497 @ma = ($m1 .. $u);
498 @ma = ($t  .. $m2);
499 @ma = ($m1 .. $m2);
500
501 @ma = ($t  ... $u);
502 @ma = ($m1 ... $u);
503 @ma = ($t  ... $m2);
504 @ma = ($m1 ... $m2);
505
506 $v = ($t  .. $u);
507 $v = ($m1 .. $u);
508 $v = ($t  .. $m2);
509 $v = ($m1 .. $m2);
510
511 $v = ($t  ... $u);
512 $v = ($m1 ... $u);
513 $v = ($t  ... $m2);
514 $v = ($m1 ... $m2);
515 EXPECT
516 Use of uninitialized value $m1 in range (or flop) at - line 7.
517 Use of uninitialized value $m2 in range (or flop) at - line 8.
518 Use of uninitialized value in range (or flop) at - line 9.
519 Use of uninitialized value in range (or flop) at - line 9.
520 Use of uninitialized value $m1 in range (or flop) at - line 12.
521 Use of uninitialized value $m2 in range (or flop) at - line 13.
522 Use of uninitialized value in range (or flop) at - line 14.
523 Use of uninitialized value in range (or flop) at - line 14.
524 ########
525 use warnings 'uninitialized';
526 my ($m1, $v);
527 our ($g1);
528
529 my ($x1,$x2);
530 $v = $x1 << $m1;
531 $v = $x2 << $g1;
532 EXPECT
533 Use of uninitialized value $m1 in left bitshift (<<) at - line 6.
534 Use of uninitialized value $x1 in left bitshift (<<) at - line 6.
535 Use of uninitialized value $g1 in left bitshift (<<) at - line 7.
536 Use of uninitialized value $x2 in left bitshift (<<) at - line 7.
537 ########
538 use warnings 'uninitialized';
539 my ($m1, $m2, $v);
540 our ($g1, $g2);
541
542 use integer;
543 $v = $m1 + $g1;
544 $v = $m1 - $g1;
545 $v = $m1 * $g1;
546 eval {$v = $m1 / $g1};
547 $v = $m2 / 2;
548 eval {$v = $m1 % $g1};
549 $v = $m2 % 2;
550 $v = $m1 < $g1;
551 $v = $m1 > $g1;
552 $v = $m1 <= $g1;
553 $v = $m1 >= $g1;
554 $v = $m1 == $g1;
555 $v = $m1 != $g1;
556 $v = $m1 <=> $g1;
557 $v = -$m1;
558 EXPECT
559 Use of uninitialized value $m1 in integer addition (+) at - line 6.
560 Use of uninitialized value $g1 in integer addition (+) at - line 6.
561 Use of uninitialized value $m1 in integer subtraction (-) at - line 7.
562 Use of uninitialized value $g1 in integer subtraction (-) at - line 7.
563 Use of uninitialized value $m1 in integer multiplication (*) at - line 8.
564 Use of uninitialized value $g1 in integer multiplication (*) at - line 8.
565 Use of uninitialized value $m1 in integer division (/) at - line 9.
566 Use of uninitialized value $g1 in integer division (/) at - line 9.
567 Use of uninitialized value $m2 in integer division (/) at - line 10.
568 Use of uninitialized value $m1 in integer modulus (%) at - line 11.
569 Use of uninitialized value $g1 in integer modulus (%) at - line 11.
570 Use of uninitialized value $m2 in integer modulus (%) at - line 12.
571 Use of uninitialized value $m1 in integer lt (<) at - line 13.
572 Use of uninitialized value $g1 in integer lt (<) at - line 13.
573 Use of uninitialized value $m1 in integer gt (>) at - line 14.
574 Use of uninitialized value $g1 in integer gt (>) at - line 14.
575 Use of uninitialized value $m1 in integer le (<=) at - line 15.
576 Use of uninitialized value $g1 in integer le (<=) at - line 15.
577 Use of uninitialized value $m1 in integer ge (>=) at - line 16.
578 Use of uninitialized value $g1 in integer ge (>=) at - line 16.
579 Use of uninitialized value $m1 in integer eq (==) at - line 17.
580 Use of uninitialized value $g1 in integer eq (==) at - line 17.
581 Use of uninitialized value $m1 in integer ne (!=) at - line 18.
582 Use of uninitialized value $g1 in integer ne (!=) at - line 18.
583 Use of uninitialized value $m1 in integer comparison (<=>) at - line 19.
584 Use of uninitialized value $g1 in integer comparison (<=>) at - line 19.
585 Use of uninitialized value $m1 in integer negation (-) at - line 20.
586 ########
587 use warnings 'uninitialized';
588 my ($m1, $m2, $v);
589 our ($g1, $g2);
590
591 $v = int($g1);
592 $v = abs($g2);
593 EXPECT
594 Use of uninitialized value $g1 in int at - line 5.
595 Use of uninitialized value $g2 in abs at - line 6.
596 ########
597 use warnings 'uninitialized';
598 my ($m1, $m2, $v);
599 our ($g1);
600
601 $v = pack $m1;
602 $v = pack "i*", $m2, $g1, $g2;
603 my @unpack = unpack $m1, $m2;
604 EXPECT
605 Use of uninitialized value $m1 in pack at - line 5.
606 Use of uninitialized value $m2 in pack at - line 6.
607 Use of uninitialized value $g1 in pack at - line 6.
608 Use of uninitialized value $g2 in pack at - line 6.
609 Use of uninitialized value $m1 in unpack at - line 7.
610 Use of uninitialized value $m2 in unpack at - line 7.
611 ########
612 use warnings 'uninitialized';
613 my ($m1);
614 our ($g1);
615
616 my @sort;
617 @sort = sort $m1, $g1;
618 @sort = sort {$a <=> $b} $m1, $g1;
619 sub sortf {$a-1 <=> $b-1};
620 @sort = sort  &sortf, $m1, $g1;
621 EXPECT
622 Use of uninitialized value $m1 in sort at - line 6.
623 Use of uninitialized value $g1 in sort at - line 6.
624 Use of uninitialized value $m1 in sort at - line 6.
625 Use of uninitialized value $g1 in sort at - line 6.
626 Use of uninitialized value $m1 in sort at - line 7.
627 Use of uninitialized value $g1 in sort at - line 7.
628 Use of uninitialized value $m1 in sort at - line 7.
629 Use of uninitialized value $g1 in sort at - line 7.
630 Use of uninitialized value $a in subtraction (-) at - line 8.
631 Use of uninitialized value $b in subtraction (-) at - line 8.
632 Use of uninitialized value $m1 in sort at - line 9.
633 Use of uninitialized value $g1 in sort at - line 9.
634 Use of uninitialized value $m1 in sort at - line 9.
635 Use of uninitialized value $m1 in sort at - line 9.
636 Use of uninitialized value $g1 in sort at - line 9.
637 Use of uninitialized value $g1 in sort at - line 9.
638 ########
639 use warnings 'uninitialized';
640 my ($m1, $m2, $v);
641 our ($g1);
642
643 eval { $v = $m1 / $g1 };
644 $v = $m2 / 2;
645 eval { $v = $m1 % $g1 };
646 $v = $m2 % 2;
647 $v = $m1 == $g1;
648 $v = $m1 >= $g1;
649 $v = $m1 >  $g1;
650 $v = $m1 <= $g1;
651 $v = $m1 <  $g1;
652 $v = $m1 *  $g1;
653 $v = $m1 <=>$g1;
654 $v = $m1 != $g1;
655 $v = $m1   -$g1;
656 $v = $m1 ** $g1;
657 $v = $m1 +  $g1;
658 $v = $m1 -  $g1;
659 EXPECT
660 Use of uninitialized value $g1 in division (/) at - line 5.
661 Use of uninitialized value $m1 in division (/) at - line 5.
662 Use of uninitialized value $m2 in division (/) at - line 6.
663 Use of uninitialized value $g1 in modulus (%) at - line 7.
664 Use of uninitialized value $m1 in modulus (%) at - line 7.
665 Use of uninitialized value $m2 in modulus (%) at - line 8.
666 Use of uninitialized value $g1 in numeric eq (==) at - line 9.
667 Use of uninitialized value $m1 in numeric eq (==) at - line 9.
668 Use of uninitialized value $g1 in numeric ge (>=) at - line 10.
669 Use of uninitialized value $m1 in numeric ge (>=) at - line 10.
670 Use of uninitialized value $g1 in numeric gt (>) at - line 11.
671 Use of uninitialized value $m1 in numeric gt (>) at - line 11.
672 Use of uninitialized value $g1 in numeric le (<=) at - line 12.
673 Use of uninitialized value $m1 in numeric le (<=) at - line 12.
674 Use of uninitialized value $g1 in numeric lt (<) at - line 13.
675 Use of uninitialized value $m1 in numeric lt (<) at - line 13.
676 Use of uninitialized value $g1 in multiplication (*) at - line 14.
677 Use of uninitialized value $m1 in multiplication (*) at - line 14.
678 Use of uninitialized value $g1 in numeric comparison (<=>) at - line 15.
679 Use of uninitialized value $m1 in numeric comparison (<=>) at - line 15.
680 Use of uninitialized value $g1 in numeric ne (!=) at - line 16.
681 Use of uninitialized value $m1 in numeric ne (!=) at - line 16.
682 Use of uninitialized value $g1 in subtraction (-) at - line 17.
683 Use of uninitialized value $m1 in subtraction (-) at - line 17.
684 Use of uninitialized value $g1 in exponentiation (**) at - line 18.
685 Use of uninitialized value $m1 in exponentiation (**) at - line 18.
686 Use of uninitialized value $g1 in addition (+) at - line 19.
687 Use of uninitialized value $m1 in addition (+) at - line 19.
688 Use of uninitialized value $g1 in subtraction (-) at - line 20.
689 Use of uninitialized value $m1 in subtraction (-) at - line 20.
690 ########
691 use warnings 'uninitialized';
692 sub TIESCALAR{bless[]}
693 sub FETCH { undef }
694
695 tie my $m1, "";
696 my $v = $m1 + $m1;
697 no warnings;
698 $v = $m1 + $m1;
699 EXPECT
700 Use of uninitialized value $m1 in addition (+) at - line 6.
701 Use of uninitialized value $m1 in addition (+) at - line 6.
702 ########
703 use warnings 'uninitialized';
704 my ($m1, $v);
705 our ($g1);
706
707 $v = *global1{$m1};
708 $v = prototype $g1;
709 $v = bless [], $g1;
710 $v = `$m1`;
711
712 $v = $m1 . $g1;
713 EXPECT
714 Use of uninitialized value $m1 in glob elem at - line 5.
715 Use of uninitialized value $g1 in subroutine prototype at - line 6.
716 Use of uninitialized value $g1 in bless at - line 7.
717 Use of uninitialized value $m1 in quoted execution (``, qx) at - line 8.
718 Use of uninitialized value $m1 in concatenation (.) or string at - line 10.
719 Use of uninitialized value $g1 in concatenation (.) or string at - line 10.
720 ########
721 use warnings 'uninitialized';
722 my ($m1);
723 our ($g1, $g2);
724
725 /y/;
726 /$m1/;
727 /$g1/;
728
729 s/y/z/;         undef $_;
730 s/$m1/z/;       undef $_;
731 s//$g1/;        undef $_;
732 s/$m1/$g1/;     undef $_;
733 tr/x/y/;        undef $_;
734
735 my $_; 
736 /y/;
737 /$m1/;
738 /$g1/;
739 s/y/z/;         undef $_;
740 s/$m1/z/;       undef $_;
741 s//$g1/;        undef $_;
742 s/$m1/$g1/;     undef $_;
743 tr/x/y/;        undef $_;
744
745 $g2 =~ /y/;
746 $g2 =~ /$m1/;
747 $g2 =~ /$g1/;
748 $g2 =~ s/y/z/;          undef $g2;
749 $g2 =~ s/$m1/z/;        undef $g2;
750 $g2 =~ s//$g1/;         undef $g2;
751 $g2 =~ s/$m1/$g1/;      undef $g2;
752 $g2 =~ tr/x/y/;         undef $g2; # XXX can't extract var name yet
753
754 my $foo = "abc";
755 $foo =~ /$m1/;
756 $foo =~ /$g1/;
757 $foo =~ s/y/z/;
758 $foo =~ s/$m1/z/;
759 $foo =~ s//$g1/;
760 $foo =~ s/$m1/$g1/;
761 $foo =~ s/./$m1/e;
762 undef $g1;
763 $m1 = '$g1';
764 $foo =~ s//$m1/ee;
765 EXPECT
766 Use of uninitialized value $_ in pattern match (m//) at - line 5.
767 Use of uninitialized value $m1 in regexp compilation at - line 6.
768 Use of uninitialized value $_ in pattern match (m//) at - line 6.
769 Use of uninitialized value $g1 in regexp compilation at - line 7.
770 Use of uninitialized value $_ in pattern match (m//) at - line 7.
771 Use of uninitialized value $_ in substitution (s///) at - line 9.
772 Use of uninitialized value $m1 in regexp compilation at - line 10.
773 Use of uninitialized value $_ in substitution (s///) at - line 10.
774 Use of uninitialized value $_ in substitution (s///) at - line 10.
775 Use of uninitialized value $_ in substitution (s///) at - line 11.
776 Use of uninitialized value $g1 in substitution (s///) at - line 11.
777 Use of uninitialized value $_ in substitution (s///) at - line 11.
778 Use of uninitialized value $g1 in substitution (s///) at - line 11.
779 Use of uninitialized value $m1 in regexp compilation at - line 12.
780 Use of uninitialized value $_ in substitution (s///) at - line 12.
781 Use of uninitialized value $_ in substitution (s///) at - line 12.
782 Use of uninitialized value $g1 in substitution iterator at - line 12.
783 Use of uninitialized value $_ in transliteration (tr///) at - line 13.
784 Use of uninitialized value $_ in pattern match (m//) at - line 16.
785 Use of uninitialized value $m1 in regexp compilation at - line 17.
786 Use of uninitialized value $_ in pattern match (m//) at - line 17.
787 Use of uninitialized value $g1 in regexp compilation at - line 18.
788 Use of uninitialized value $_ in pattern match (m//) at - line 18.
789 Use of uninitialized value $_ in substitution (s///) at - line 19.
790 Use of uninitialized value $m1 in regexp compilation at - line 20.
791 Use of uninitialized value $_ in substitution (s///) at - line 20.
792 Use of uninitialized value $_ in substitution (s///) at - line 20.
793 Use of uninitialized value $_ in substitution (s///) at - line 21.
794 Use of uninitialized value $g1 in substitution (s///) at - line 21.
795 Use of uninitialized value $_ in substitution (s///) at - line 21.
796 Use of uninitialized value $g1 in substitution (s///) at - line 21.
797 Use of uninitialized value $m1 in regexp compilation at - line 22.
798 Use of uninitialized value $_ in substitution (s///) at - line 22.
799 Use of uninitialized value $_ in substitution (s///) at - line 22.
800 Use of uninitialized value $g1 in substitution iterator at - line 22.
801 Use of uninitialized value $_ in transliteration (tr///) at - line 23.
802 Use of uninitialized value $g2 in pattern match (m//) at - line 25.
803 Use of uninitialized value $m1 in regexp compilation at - line 26.
804 Use of uninitialized value $g2 in pattern match (m//) at - line 26.
805 Use of uninitialized value $g1 in regexp compilation at - line 27.
806 Use of uninitialized value $g2 in pattern match (m//) at - line 27.
807 Use of uninitialized value $g2 in substitution (s///) at - line 28.
808 Use of uninitialized value $m1 in regexp compilation at - line 29.
809 Use of uninitialized value $g2 in substitution (s///) at - line 29.
810 Use of uninitialized value $g2 in substitution (s///) at - line 29.
811 Use of uninitialized value $g2 in substitution (s///) at - line 30.
812 Use of uninitialized value $g1 in substitution (s///) at - line 30.
813 Use of uninitialized value $g2 in substitution (s///) at - line 30.
814 Use of uninitialized value $g1 in substitution (s///) at - line 30.
815 Use of uninitialized value $m1 in regexp compilation at - line 31.
816 Use of uninitialized value $g2 in substitution (s///) at - line 31.
817 Use of uninitialized value $g2 in substitution (s///) at - line 31.
818 Use of uninitialized value $g1 in substitution iterator at - line 31.
819 Use of uninitialized value in transliteration (tr///) at - line 32.
820 Use of uninitialized value $m1 in regexp compilation at - line 35.
821 Use of uninitialized value $g1 in regexp compilation at - line 36.
822 Use of uninitialized value $m1 in regexp compilation at - line 38.
823 Use of uninitialized value $g1 in substitution (s///) at - line 39.
824 Use of uninitialized value $m1 in regexp compilation at - line 40.
825 Use of uninitialized value $g1 in substitution iterator at - line 40.
826 Use of uninitialized value $m1 in substitution iterator at - line 41.
827 Use of uninitialized value in substitution iterator at - line 44.
828 ########
829 use warnings 'uninitialized';
830 my ($m1);
831
832 { my $foo = "abc"; (substr($foo,0,0)) = ($m1) }
833 EXPECT
834 Use of uninitialized value $m1 in list assignment at - line 4.
835 ########
836 use warnings 'uninitialized';
837 our ($g1);
838
839 study;
840 study $g1;
841 EXPECT
842 Use of uninitialized value $_ in study at - line 4.
843 Use of uninitialized value $g1 in study at - line 5.
844 ########
845 use warnings 'uninitialized';
846 my ($m1);
847
848 pos()=0;
849 pos($m1)=0;
850 EXPECT
851 Use of uninitialized value $_ in scalar assignment at - line 4.
852 Use of uninitialized value $m1 in scalar assignment at - line 5.
853 ########
854 use warnings 'uninitialized';
855 my ($m1);
856 our ($g1);
857
858 $v = pos($m1) + 1;
859 $v = pos($g1) + 1;
860 $m1 = 0;
861 $g1 = "";
862 $v = pos($m1) + 1;
863 $v = pos($g1) + 1;
864 EXPECT
865 Use of uninitialized value in addition (+) at - line 5.
866 Use of uninitialized value in addition (+) at - line 6.
867 Use of uninitialized value in addition (+) at - line 9.
868 Use of uninitialized value in addition (+) at - line 10.
869 ########
870 use warnings 'uninitialized';
871 my ($m1);
872
873 { my $x = "a" x $m1 }           # NB LHS of repeat does not warn
874 { my @x = ("a") x $m1 }
875 EXPECT
876 Use of uninitialized value $m1 in repeat (x) at - line 4.
877 Use of uninitialized value $m1 in repeat (x) at - line 5.
878 ########
879 use warnings 'uninitialized';
880 my ($m1, $v);
881 our ($g1);
882
883 $v = "$m1";
884
885 $v = $m1 lt $g1;
886 $v = $m1 le $g1;
887 $v = $m1 gt $g1;
888 $v = $m1 ge $g1;
889 $v = $m1 eq $g1;
890 $v = $m1 ne $g1;
891 $v = $m1 cmp $g1;
892 EXPECT
893 Use of uninitialized value $m1 in string at - line 5.
894 Use of uninitialized value $m1 in string lt at - line 7.
895 Use of uninitialized value $g1 in string lt at - line 7.
896 Use of uninitialized value $m1 in string le at - line 8.
897 Use of uninitialized value $g1 in string le at - line 8.
898 Use of uninitialized value $m1 in string gt at - line 9.
899 Use of uninitialized value $g1 in string gt at - line 9.
900 Use of uninitialized value $m1 in string ge at - line 10.
901 Use of uninitialized value $g1 in string ge at - line 10.
902 Use of uninitialized value $m1 in string eq at - line 11.
903 Use of uninitialized value $g1 in string eq at - line 11.
904 Use of uninitialized value $m1 in string ne at - line 12.
905 Use of uninitialized value $g1 in string ne at - line 12.
906 Use of uninitialized value $m1 in string comparison (cmp) at - line 13.
907 Use of uninitialized value $g1 in string comparison (cmp) at - line 13.
908 ########
909 use warnings 'uninitialized';
910 my ($m1, $v);
911 our ($g1);
912
913 $v = atan2($m1,$g1);
914 $v = sin $m1;
915 $v = cos $m1;
916 $v = rand $m1;
917 $v = srand $m1;
918 $v = exp $m1;
919 $v = eval {log $m1};
920 $v = sqrt $m1;
921 $v = hex $m1;
922 $v = oct $m1;
923 $v = oct;
924 $v = length; # does not warn
925 EXPECT
926 Use of uninitialized value $m1 in atan2 at - line 5.
927 Use of uninitialized value $g1 in atan2 at - line 5.
928 Use of uninitialized value $m1 in sin at - line 6.
929 Use of uninitialized value $m1 in cos at - line 7.
930 Use of uninitialized value $m1 in rand at - line 8.
931 Use of uninitialized value $m1 in srand at - line 9.
932 Use of uninitialized value $m1 in exp at - line 10.
933 Use of uninitialized value $m1 in log at - line 11.
934 Use of uninitialized value $m1 in sqrt at - line 12.
935 Use of uninitialized value $m1 in hex at - line 13.
936 Use of uninitialized value $m1 in oct at - line 14.
937 Use of uninitialized value $_ in oct at - line 15.
938 ########
939 use warnings 'uninitialized';
940 my ($m1, $v);
941 our ($g1);
942
943 $v = substr $m1, $g1;
944 $v = substr $m1, $g1, $m2;
945 $v = substr $m1, $g1, $m2, $g2; undef $m1;
946 substr($m1, $g1) = $g2;         undef $m1; # NB global2
947 substr($m1, $g1, $m2) = $g2;    undef $m1; # isn't identified
948
949 $v = eval {vec ($m1, $g1, $m2)};
950 eval {vec ($m1, $g1, $m2) = $g2};       undef $m1; # ditto
951
952 $v = index  $m1, $m2;
953 $v = index  $m1, $m2, $g1;
954 $v = rindex $m1, $m2;
955 $v = rindex $m1, $m2, $g1;
956 EXPECT
957 Use of uninitialized value $g1 in substr at - line 5.
958 Use of uninitialized value $m1 in substr at - line 5.
959 Use of uninitialized value $m2 in substr at - line 6.
960 Use of uninitialized value $g1 in substr at - line 6.
961 Use of uninitialized value $m1 in substr at - line 6.
962 Use of uninitialized value $g2 in substr at - line 7.
963 Use of uninitialized value $m2 in substr at - line 7.
964 Use of uninitialized value $g1 in substr at - line 7.
965 Use of uninitialized value $m1 in substr at - line 7.
966 Use of uninitialized value $g1 in substr at - line 8.
967 Use of uninitialized value $m1 in substr at - line 8.
968 Use of uninitialized value in scalar assignment at - line 8.
969 Use of uninitialized value $m2 in substr at - line 9.
970 Use of uninitialized value $g1 in substr at - line 9.
971 Use of uninitialized value $m1 in substr at - line 9.
972 Use of uninitialized value in scalar assignment at - line 9.
973 Use of uninitialized value $m2 in vec at - line 11.
974 Use of uninitialized value $g1 in vec at - line 11.
975 Use of uninitialized value $m1 in vec at - line 11.
976 Use of uninitialized value $m2 in vec at - line 12.
977 Use of uninitialized value $g1 in vec at - line 12.
978 Use of uninitialized value $m1 in vec at - line 12.
979 Use of uninitialized value $m1 in index at - line 14.
980 Use of uninitialized value $m2 in index at - line 14.
981 Use of uninitialized value $g1 in index at - line 15.
982 Use of uninitialized value $m1 in index at - line 15.
983 Use of uninitialized value $m2 in index at - line 15.
984 Use of uninitialized value $m1 in rindex at - line 16.
985 Use of uninitialized value $m2 in rindex at - line 16.
986 Use of uninitialized value $g1 in rindex at - line 17.
987 Use of uninitialized value $m1 in rindex at - line 17.
988 Use of uninitialized value $m2 in rindex at - line 17.
989 ########
990 use warnings 'uninitialized';
991 my ($m1, $v);
992 our ($g1);
993
994 $v = sprintf $m1;
995 $v = sprintf '%d%d%d%d', $m1, $m2, $g1, $g2;
996 my $m3; eval {formline $m3 };
997 formline '@<<@<<@<<@<<', $m1, $m2, $g1, $g2;
998 EXPECT
999 Use of uninitialized value $m1 in sprintf at - line 5.
1000 Use of uninitialized value $m1 in sprintf at - line 6.
1001 Use of uninitialized value $m2 in sprintf at - line 6.
1002 Use of uninitialized value $g1 in sprintf at - line 6.
1003 Use of uninitialized value $g2 in sprintf at - line 6.
1004 Use of uninitialized value $m3 in formline at - line 7.
1005 Use of uninitialized value $m1 in formline at - line 8.
1006 Use of uninitialized value $m2 in formline at - line 8.
1007 Use of uninitialized value $g1 in formline at - line 8.
1008 Use of uninitialized value $g2 in formline at - line 8.
1009 ########
1010 use warnings 'uninitialized';
1011 my ($m1, $v);
1012 our ($g1);
1013
1014 $v = crypt $m1, $g1;
1015
1016 $v = ord;
1017 $v = ord $m1;
1018 $v = chr;
1019 $v = chr $m1;
1020
1021 $v = ucfirst;
1022 $v = ucfirst $m1;
1023 $v = lcfirst;
1024 $v = lcfirst $m1;
1025 $v = uc;
1026 $v = uc $m1;
1027 $v = lc;
1028 $v = lc $m1;
1029
1030 $v = quotemeta;
1031 $v = quotemeta $m1;
1032 EXPECT
1033 Use of uninitialized value $m1 in crypt at - line 5.
1034 Use of uninitialized value $g1 in crypt at - line 5.
1035 Use of uninitialized value $_ in ord at - line 7.
1036 Use of uninitialized value $m1 in ord at - line 8.
1037 Use of uninitialized value $_ in chr at - line 9.
1038 Use of uninitialized value $m1 in chr at - line 10.
1039 Use of uninitialized value $_ in ucfirst at - line 12.
1040 Use of uninitialized value $m1 in ucfirst at - line 13.
1041 Use of uninitialized value $_ in lcfirst at - line 14.
1042 Use of uninitialized value $m1 in lcfirst at - line 15.
1043 Use of uninitialized value $_ in uc at - line 16.
1044 Use of uninitialized value $m1 in uc at - line 17.
1045 Use of uninitialized value $_ in lc at - line 18.
1046 Use of uninitialized value $m1 in lc at - line 19.
1047 Use of uninitialized value $_ in quotemeta at - line 21.
1048 Use of uninitialized value $m1 in quotemeta at - line 22.
1049 ########
1050 use warnings 'uninitialized';
1051 my ($m1, $v1, $v2, $v3, $v4);
1052 our ($g1);
1053
1054 ($v1,$v2,$v3,$v4) = split;
1055 ($v1,$v2,$v3,$v4) = split $m1;
1056 ($v1,$v2,$v3,$v4) = split $m1, $m2;
1057 ($v1,$v2,$v3,$v4) = split $m1, $m2, $g1;
1058
1059 $v1 = join $m1;
1060 $v2 = join $m1, $m2;
1061 $v3 = join $m1, $m2, $m3;
1062 EXPECT
1063 Use of uninitialized value $_ in split at - line 5.
1064 Use of uninitialized value $m1 in regexp compilation at - line 6.
1065 Use of uninitialized value $_ in split at - line 6.
1066 Use of uninitialized value $m1 in regexp compilation at - line 7.
1067 Use of uninitialized value $m2 in split at - line 7.
1068 Use of uninitialized value $m1 in regexp compilation at - line 8.
1069 Use of uninitialized value $g1 in split at - line 8.
1070 Use of uninitialized value $m2 in split at - line 8.
1071 Use of uninitialized value $m1 in join or string at - line 10.
1072 Use of uninitialized value $m1 in join or string at - line 11.
1073 Use of uninitialized value $m2 in join or string at - line 11.
1074 Use of uninitialized value $m1 in join or string at - line 12.
1075 Use of uninitialized value $m2 in join or string at - line 12.
1076 Use of uninitialized value $m3 in join or string at - line 12.
1077 ########
1078 use warnings 'uninitialized';
1079 my ($m1, $m2, @ma, $v);
1080
1081 our @foo1=(1,undef); chomp @foo1;
1082 my  @foo2=(1,undef); chomp @foo2;
1083 our @foo3=(1,undef); chop  @foo3;
1084 my  @foo4=(1,undef); chop  @foo4;
1085 our @foo5=(1,undef); $v = sprintf "%s%s",@foo5;
1086 my  @foo6=(1,undef); $v = sprintf "%s%s",@foo6;
1087 our %foo7=('foo'=>'bar','baz'=>undef); $v = sprintf "%s%s",%foo7;
1088 my  %foo8=('foo'=>'bar','baz'=>undef); $v = sprintf "%s%s",%foo8;
1089 our @foo9 =(1,undef); $v = sprintf "%s%s%s%s",$m1,@foo9, $ma[2];
1090 my  @foo10=(1,undef); $v = sprintf "%s%s%s%s",$m2,@foo10,$ma[2];
1091 our %foo11=('foo'=>'bar','baz'=>undef); $v = join '', %foo11;
1092 my  %foo12=('foo'=>'bar','baz'=>undef); $v = join '', %foo12;
1093 our %foo13=(1..2000,'foo'=>'bar','baz'=>undef); $v = join '', %foo13;
1094 my  %foo14=(1..2000,'foo'=>'bar','baz'=>undef); $v = join '', %foo14;
1095 EXPECT
1096 Use of uninitialized value $foo1[1] in chomp at - line 4.
1097 Use of uninitialized value $foo2[1] in chomp at - line 5.
1098 Use of uninitialized value $foo3[1] in chop at - line 6.
1099 Use of uninitialized value $foo4[1] in chop at - line 7.
1100 Use of uninitialized value $foo5[1] in sprintf at - line 8.
1101 Use of uninitialized value $foo6[1] in sprintf at - line 9.
1102 Use of uninitialized value $foo7{"baz"} in sprintf at - line 10.
1103 Use of uninitialized value $foo8{"baz"} in sprintf at - line 11.
1104 Use of uninitialized value $m1 in sprintf at - line 12.
1105 Use of uninitialized value $foo9[1] in sprintf at - line 12.
1106 Use of uninitialized value in sprintf at - line 12.
1107 Use of uninitialized value $m2 in sprintf at - line 13.
1108 Use of uninitialized value $foo10[1] in sprintf at - line 13.
1109 Use of uninitialized value in sprintf at - line 13.
1110 Use of uninitialized value $foo11{"baz"} in join or string at - line 14.
1111 Use of uninitialized value $foo12{"baz"} in join or string at - line 15.
1112 Use of uninitialized value within %foo13 in join or string at - line 16.
1113 Use of uninitialized value within %foo14 in join or string at - line 17.
1114 ########
1115 use warnings 'uninitialized';
1116 my ($v);
1117
1118 undef $^A; $v = $^A + ${^FOO}; # should output '^A' not chr(1)
1119 *GLOB1 = *GLOB2;
1120 $v = $GLOB1 + 1;
1121 $v = $GLOB2 + 1;
1122 EXPECT
1123 Use of uninitialized value $^FOO in addition (+) at - line 4.
1124 Use of uninitialized value $^A in addition (+) at - line 4.
1125 Use of uninitialized value $GLOB1 in addition (+) at - line 6.
1126 Use of uninitialized value $GLOB2 in addition (+) at - line 7.
1127 ########
1128 use warnings 'uninitialized';
1129 my ($v);
1130
1131 # check hash key is sanitised
1132 my %h = ("\0011\002\r\n\t\f\"\\abcdefghijklmnopqrstuvwxyz", undef);
1133 $v = join '', %h;
1134 EXPECT
1135 Use of uninitialized value $h{"\0011\2\r\n\t\f\"\\abcdefghijklm"...} in join or string at - line 6.
1136 ########
1137 use warnings 'uninitialized';
1138 my ($m1, $v);
1139 our ($g1);
1140
1141 $v = eval { \&$m1 };
1142 $v = eval { \&$g1 };
1143
1144 my @a;
1145 @a = splice @a, $m1, $g1;
1146 $v = 1 + splice @a, $m1, $g1;
1147
1148 my $x = bless [], 'Z';
1149 eval { $x->$m1() };
1150
1151 eval { &$m1() };
1152 eval { &$g1() };
1153
1154 warn $m1,$g1,"foo";
1155
1156 eval { die $m1, $g1 };
1157
1158 reset $m1;
1159 reset $g1;
1160 EXPECT
1161 Use of uninitialized value $m1 in subroutine dereference at - line 5.
1162 Use of uninitialized value $g1 in subroutine dereference at - line 6.
1163 Use of uninitialized value $m1 in splice at - line 9.
1164 Use of uninitialized value $g1 in splice at - line 9.
1165 Use of uninitialized value $m1 in splice at - line 10.
1166 Use of uninitialized value $g1 in splice at - line 10.
1167 Use of uninitialized value in addition (+) at - line 10.
1168 Use of uninitialized value $m1 in method lookup at - line 13.
1169 Use of uninitialized value in subroutine entry at - line 15.
1170 Use of uninitialized value in subroutine entry at - line 16.
1171 Use of uninitialized value $m1 in warn at - line 18.
1172 Use of uninitialized value $g1 in warn at - line 18.
1173 foo at - line 18.
1174 Use of uninitialized value $m1 in die at - line 20.
1175 Use of uninitialized value $g1 in die at - line 20.
1176 Use of uninitialized value $m1 in symbol reset at - line 22.
1177 Use of uninitialized value $g1 in symbol reset at - line 23.
1178 ########
1179 use warnings 'uninitialized';
1180 my ($m1);
1181 our ($g1);
1182
1183 open FOO;               # accesses $FOO
1184 my $foo = 'FO';
1185 open($foo."O"); # accesses $FOO
1186 open my $x;             # accesses ${*$x}
1187 open $foobar;   # accesses ${*$foobar}
1188 my $y;
1189 open $y, $m1;
1190 eval { open $y, $m1, $g1 };
1191 open $y, '<', $g1;
1192
1193 sysopen $y, $m1, $m2;
1194 sysopen $y, $m1, $g1, $m2;
1195
1196 my $old = umask;
1197 umask $m1;
1198 umask $g1;
1199 umask $old;
1200
1201 binmode STDIN, $m1;
1202 EXPECT
1203 Use of uninitialized value $FOO in open at - line 5.
1204 Use of uninitialized value in open at - line 7.
1205 Use of uninitialized value in open at - line 8.
1206 Use of uninitialized value in open at - line 9.
1207 Use of uninitialized value $m1 in open at - line 11.
1208 Use of uninitialized value $m1 in open at - line 12.
1209 Use of uninitialized value $g1 in open at - line 13.
1210 Use of uninitialized value $m2 in sysopen at - line 15.
1211 Use of uninitialized value $m1 in sysopen at - line 15.
1212 Use of uninitialized value $m2 in sysopen at - line 16.
1213 Use of uninitialized value $g1 in sysopen at - line 16.
1214 Use of uninitialized value $m1 in sysopen at - line 16.
1215 Use of uninitialized value $m1 in umask at - line 19.
1216 Use of uninitialized value $g1 in umask at - line 20.
1217 Use of uninitialized value $m1 in binmode at - line 23.
1218 ########
1219 use warnings 'uninitialized';
1220 my ($m1);
1221 our ($g1);
1222
1223 eval { my $x; tie $x, $m1 };
1224
1225 eval { my $x; read    $m1, $x, $g1 };
1226 eval { my $x; read    $m1, $x, $g1, $g2 };
1227 eval { my $x; sysread $m1, $x, $g1 };
1228 eval { my $x; sysread $m1, $x, $g1, $g2 };
1229 EXPECT
1230 Use of uninitialized value $m1 in tie at - line 5.
1231 Use of uninitialized value $m1 in ref-to-glob cast at - line 7.
1232 Use of uninitialized value $g1 in read at - line 7.
1233 Use of uninitialized value $m1 in ref-to-glob cast at - line 8.
1234 Use of uninitialized value $g1 in read at - line 8.
1235 Use of uninitialized value $g2 in read at - line 8.
1236 Use of uninitialized value $m1 in ref-to-glob cast at - line 9.
1237 Use of uninitialized value $g1 in sysread at - line 9.
1238 Use of uninitialized value $m1 in ref-to-glob cast at - line 10.
1239 Use of uninitialized value $g1 in sysread at - line 10.
1240 Use of uninitialized value $g2 in sysread at - line 10.
1241 ########
1242 use warnings 'uninitialized';
1243 my ($m1);
1244 our ($g1, @ga);
1245
1246 printf $m1;
1247 printf STDERR "%d%d%d%d\n", $m1, $m2, $g1, $g2;
1248 printf $ga[1000];
1249 printf STDERR "FOO1:%s\n", $ga[1000];
1250 printf STDERR "FOO2:%s%s%s%s\n", $m1, $g1, $ga[1],$m2;
1251 printf STDERR "FOO3:%s%s%s\n", "X", $ga[1],"Y";
1252 EXPECT
1253 Use of uninitialized value $m1 in printf at - line 5.
1254 Use of uninitialized value $m1 in printf at - line 6.
1255 Use of uninitialized value $m2 in printf at - line 6.
1256 Use of uninitialized value $g1 in printf at - line 6.
1257 Use of uninitialized value $g2 in printf at - line 6.
1258 0000
1259 Use of uninitialized value in printf at - line 7.
1260 Use of uninitialized value in printf at - line 8.
1261 FOO1:
1262 Use of uninitialized value $m1 in printf at - line 9.
1263 Use of uninitialized value $g1 in printf at - line 9.
1264 Use of uninitialized value in printf at - line 9.
1265 Use of uninitialized value $m2 in printf at - line 9.
1266 FOO2:
1267 Use of uninitialized value in printf at - line 10.
1268 FOO3:XY
1269 ########
1270 use warnings 'uninitialized';
1271 my ($m1);
1272 our ($g1);
1273
1274 eval { my $x; seek    $x,$m1, $g1 };
1275 eval { my $x; sysseek $x,$m1, $g1 };
1276 eval { syswrite $m1, $g1 }; # logic changed - now won't try $g1 if $m1 is bad
1277 # eval { syswrite STDERR, $m1 };        # XXX under utf8, can give
1278 # eval { syswrite STDERR, $m1, $g1 };   # XXX different warnings
1279 # eval { syswrite STDERR, $m1, $g1, $m2 };
1280 eval { my $x; socket $x, $m1, $g1, $m2 };
1281 eval { my ($x,$y); socketpair $x, $y, $m1, $g1, $m2 };
1282 EXPECT
1283 Use of uninitialized value $x in ref-to-glob cast at - line 5.
1284 Use of uninitialized value $g1 in seek at - line 5.
1285 Use of uninitialized value $m1 in seek at - line 5.
1286 Use of uninitialized value $x in ref-to-glob cast at - line 6.
1287 Use of uninitialized value $g1 in sysseek at - line 6.
1288 Use of uninitialized value $m1 in sysseek at - line 6.
1289 Use of uninitialized value $m1 in ref-to-glob cast at - line 7.
1290 Use of uninitialized value $m2 in socket at - line 11.
1291 Use of uninitialized value $g1 in socket at - line 11.
1292 Use of uninitialized value $m1 in socket at - line 11.
1293 Use of uninitialized value $m2 in socketpair at - line 12.
1294 Use of uninitialized value $g1 in socketpair at - line 12.
1295 Use of uninitialized value $m1 in socketpair at - line 12.
1296 ########
1297 use Config; 
1298 BEGIN { 
1299   if ( !$Config{d_flock} &&
1300        !$Config{d_fcntl_can_lock} &&
1301        !$Config{d_lockf} ) {
1302     print <<EOM ;
1303 SKIPPED
1304 # flock not present
1305 EOM
1306     exit ;
1307   } 
1308 }
1309 use warnings 'uninitialized';
1310 our ($g1);
1311
1312 eval { my $x; flock $x, $g1 };
1313 EXPECT
1314 Use of uninitialized value $x in ref-to-glob cast at - line 16.
1315 Use of uninitialized value $g1 in flock at - line 16.
1316 ########
1317 use warnings 'uninitialized';
1318 my ($m1, $v);
1319 our ($g1);
1320
1321 stat;
1322 lstat;
1323 stat $m1;
1324 lstat $g1;
1325
1326 $v = -R $m1;
1327 $v = -W $m1;
1328 $v = -X $m1;
1329 $v = -r $m1;
1330 $v = -w $m1;
1331 $v = -x $m1;
1332 $v = -e $m1;
1333 $v = -o $m1;
1334 $v = -O $m1;
1335 $v = -z $m1;
1336 $v = -s $m1;
1337 $v = -M $m1;
1338 $v = -A $m1;
1339 $v = -C $m1;
1340 $v = -S $m1;
1341 $v = -c $m1;
1342 $v = -b $m1;
1343 $v = -f $m1;
1344 $v = -d $m1;
1345 $v = -p $m1;
1346 $v = -l $m1;
1347 $v = -u $m1;
1348 $v = -g $m1;
1349 # $v = -k $m1; # XXX this is a no-op under win32
1350 $v = -t $m1;
1351 $v = -T $m1;
1352 $v = -B $m1;
1353 EXPECT
1354 Use of uninitialized value $_ in stat at - line 5.
1355 Use of uninitialized value $_ in lstat at - line 6.
1356 Use of uninitialized value $m1 in stat at - line 7.
1357 Use of uninitialized value $g1 in lstat at - line 8.
1358 Use of uninitialized value $m1 in -R at - line 10.
1359 Use of uninitialized value $m1 in -W at - line 11.
1360 Use of uninitialized value $m1 in -X at - line 12.
1361 Use of uninitialized value $m1 in -r at - line 13.
1362 Use of uninitialized value $m1 in -w at - line 14.
1363 Use of uninitialized value $m1 in -x at - line 15.
1364 Use of uninitialized value $m1 in -e at - line 16.
1365 Use of uninitialized value $m1 in -o at - line 17.
1366 Use of uninitialized value $m1 in -O at - line 18.
1367 Use of uninitialized value $m1 in -z at - line 19.
1368 Use of uninitialized value $m1 in -s at - line 20.
1369 Use of uninitialized value $m1 in -M at - line 21.
1370 Use of uninitialized value $m1 in -A at - line 22.
1371 Use of uninitialized value $m1 in -C at - line 23.
1372 Use of uninitialized value $m1 in -S at - line 24.
1373 Use of uninitialized value $m1 in -c at - line 25.
1374 Use of uninitialized value $m1 in -b at - line 26.
1375 Use of uninitialized value $m1 in -f at - line 27.
1376 Use of uninitialized value $m1 in -d at - line 28.
1377 Use of uninitialized value $m1 in -p at - line 29.
1378 Use of uninitialized value $m1 in -l at - line 30.
1379 Use of uninitialized value $m1 in -u at - line 31.
1380 Use of uninitialized value $m1 in -g at - line 32.
1381 Use of uninitialized value $m1 in -t at - line 34.
1382 Use of uninitialized value $m1 in -T at - line 35.
1383 Use of uninitialized value $m1 in -B at - line 36.
1384 ########
1385 use warnings 'uninitialized';
1386 my ($m1, $v);
1387 our ($g1);
1388
1389 $v = localtime $m1;
1390 $v = gmtime $g1;
1391 EXPECT
1392 Use of uninitialized value $m1 in localtime at - line 5.
1393 Use of uninitialized value $g1 in gmtime at - line 6.
1394 ########
1395 use warnings 'uninitialized';
1396 my ($m1, $m2, $v);
1397
1398 $v = eval;
1399 $v = eval $m1;
1400 $m2 = q($m1); $v = 1 + eval $m2;
1401 EXPECT
1402 Use of uninitialized value $_ in eval "string" at - line 4.
1403 Use of uninitialized value $m1 in eval "string" at - line 5.
1404 Use of uninitialized value in addition (+) at - line 6.
1405 ########
1406 use warnings 'uninitialized';
1407 my ($m1);
1408
1409 exit $m1;
1410 EXPECT
1411 Use of uninitialized value $m1 in exit at - line 4.
1412 ########
1413 use warnings 'uninitialized';
1414 my $undef;
1415
1416 if ($undef == 3) {
1417 } elsif ($undef == 0) {
1418 }
1419 EXPECT
1420 Use of uninitialized value $undef in numeric eq (==) at - line 4.
1421 Use of uninitialized value $undef in numeric eq (==) at - line 5.
1422 ########
1423 # TODO long standing bug - conditions of while loops
1424 use warnings;
1425
1426 my $c;
1427 my $d = 1;
1428 while ($c == 0 && $d) {
1429   # a
1430   # few
1431   # blank
1432   # lines
1433   undef $d;
1434 }
1435 EXPECT
1436 Use of uninitialized value $c in numeric eq (==) at - line 5.
1437 Use of uninitialized value $c in numeric eq (==) at - line 5.
1438 ########
1439 # TODO long standing bug - conditions of until loops
1440 use warnings;
1441
1442 my $c;
1443 my $d;
1444 until ($c == 1) {
1445   # a
1446   # few
1447   # blank
1448   # lines
1449   $c = 1 if ++$d == 2;
1450 }
1451 EXPECT
1452 Use of uninitialized value $c in numeric eq (==) at - line 5.
1453 Use of uninitialized value $c in numeric eq (==) at - line 5.
1454 ########
1455 # TODO long standing bug - conditions of for loops
1456 use warnings;
1457
1458 my $c;
1459 my $d;
1460 for ($d = 1; $c == 0 && $d; ) {
1461   # a
1462   # few
1463   # blank
1464   # lines
1465   undef $d;
1466 }
1467
1468 my $e;
1469 for ($d = 2; $d > 0; $e = !($c == 0)) {
1470   # a
1471   # few
1472   # blank
1473   # lines
1474   --$d;
1475 }
1476 EXPECT
1477 Use of uninitialized value $c in numeric eq (==) at - line 5.
1478 Use of uninitialized value $c in numeric eq (==) at - line 5.
1479 Use of uninitialized value $c in numeric eq (==) at - line 14.
1480 Use of uninitialized value $c in numeric eq (==) at - line 14.
1481 ########
1482 # TODO long standing bug - more general variant of the above problem
1483 use warnings;
1484 my $undef;
1485
1486 my $a = $undef + 1;
1487 my $b
1488   = $undef
1489   + 1;
1490 EXPECT
1491 Use of uninitialized value $undef in addition (+) at - line 4.
1492 Use of uninitialized value $undef in addition (+) at - line 7.
1493 ########
1494 use warnings 'uninitialized';
1495 my ($r1, $r2);
1496 $_ = undef;
1497 $v = reverse;
1498 $v = reverse $r1;
1499 $v = reverse "abc", $r2, "def";
1500 EXPECT
1501 Use of uninitialized value in reverse at - line 4.
1502 Use of uninitialized value $r1 in reverse at - line 5.
1503 Use of uninitialized value $r2 in reverse at - line 6.
1504 ########
1505 use warnings 'uninitialized';
1506 #
1507 # ops that can return undef for defined args
1508 # split into separate tests to diagnose the cause of daily build smoke
1509 #
1510 # *** `` not tested: Windows produces an error on STDERR
1511 # *** ditto qx()
1512 # *** pipe() not tested
1513 # *** ioctl not tested
1514 # *** socket not tested
1515 # *** socketpair not tested
1516 # *** bind not tested
1517 # *** connect not tested
1518 # *** listen not tested
1519 # *** shutdown not tested
1520 # *** setsockopt not tested
1521 # *** getpeername not tested
1522 # *** readdir not tested
1523 # *** telldir not tested
1524 # *** seekdir not tested
1525 # *** rewinddir not tested
1526 # *** closedir not tested
1527 # *** gmtime not tested
1528 # *** alarm not tested
1529 # *** semget not tested
1530 # *** getlogin not tested
1531 EXPECT
1532 ########
1533 use warnings 'uninitialized';
1534 if ($^O eq 'MSWin32') {
1535     print <<'EOM';
1536 SKIPPED
1537 # `` produces an error on STDERR on Win32
1538 EOM
1539     exit;
1540
1541 my $nocmd  = '/no/such/command';
1542 my $v;
1543 $v = 1 + `$nocmd`;
1544 EXPECT
1545 Use of uninitialized value in addition (+) at - line 11.
1546 ########
1547 use warnings 'uninitialized';
1548 if ($^O eq 'MSWin32') {
1549     print <<'EOM';
1550 SKIPPED
1551 # qx produces an error on STDERR on Win32
1552 EOM
1553     exit;
1554
1555 my $nocmd  = '/no/such/command';
1556 my $v;
1557 $v = 1 + qx($nocmd);
1558 EXPECT
1559 Use of uninitialized value in addition (+) at - line 11.
1560 ########
1561 use warnings 'uninitialized';
1562 my $nan = "NaN";
1563 if ($nan == $nan) {
1564     print <<'EOM';
1565 SKIPPED
1566 # NaN not supported here.
1567 EOM
1568     exit;
1569
1570 my $v;
1571 $v = 1 + ($nan <=> 1);
1572 EXPECT
1573 Use of uninitialized value in addition (+) at - line 11.
1574 ########
1575 use warnings 'uninitialized';
1576 if ($^O eq 'MSWin32') {
1577     print <<'EOM';
1578 SKIPPED
1579 # -k produces no warning on Win32
1580 EOM
1581     exit;
1582
1583 my $nofile = '/no/such/file';
1584 my $v;
1585 $v = 1 + -k $nofile;
1586 EXPECT
1587 Use of uninitialized value in addition (+) at - line 11.
1588 ########
1589 use warnings 'uninitialized';
1590 my $nofile = '/no/such/file';
1591 my $v;
1592 my $f = "";
1593 $v = 1 + open($f, $nofile);
1594 EXPECT
1595 Use of uninitialized value in addition (+) at - line 5.
1596 ########
1597 use warnings 'uninitialized';
1598 my $nofile = '/no/such/file';
1599 my $v;
1600 $v = 1 + fileno($nofile);
1601 EXPECT
1602 Use of uninitialized value in addition (+) at - line 4.
1603 ########
1604 use warnings 'uninitialized';
1605 my $nofile = '/no/such/file';
1606 my $v;
1607 $v = 1 + binmode($nofile);
1608 EXPECT
1609 Use of uninitialized value in addition (+) at - line 4.
1610 ########
1611 use warnings 'uninitialized';
1612 my $nofile = '/no/such/file';
1613 my $v;
1614 $v = 1 + tied($nofile);
1615 EXPECT
1616 Use of uninitialized value in addition (+) at - line 4.
1617 ########
1618 use warnings 'uninitialized';
1619 my $nofile = '/no/such/file';
1620 my $v;
1621 $v = 1 + getc($nofile);
1622 EXPECT
1623 Use of uninitialized value in addition (+) at - line 4.
1624 ########
1625 use warnings 'uninitialized';
1626 my $nofile = '/no/such/file';
1627 my $v;
1628 $v = 1 + sysread($nofile, my $buf,1);
1629 EXPECT
1630 Use of uninitialized value in addition (+) at - line 4.
1631 ########
1632 use warnings 'uninitialized';
1633 my $nofile = '/no/such/file';
1634 my $v;
1635 $v = 1 + eval { send($nofile, $buf,0) };
1636 EXPECT
1637 Use of uninitialized value in addition (+) at - line 4.
1638 ########
1639 use warnings 'uninitialized';
1640 my $nofile = '/no/such/file';
1641 my $v;
1642 my $fh = "";
1643 $v = 1 + eval { accept($fh, $nofile) };
1644 EXPECT
1645 Use of uninitialized value in addition (+) at - line 5.
1646 ########
1647 use warnings 'uninitialized';
1648 my $nofile = '/no/such/file';
1649 my $v;
1650 $v = 1 + (-r $nofile);
1651 EXPECT
1652 Use of uninitialized value in addition (+) at - line 4.
1653 ########
1654 use warnings 'uninitialized';
1655 my $nofile = '/no/such/file';
1656 my $v;
1657 $v = 1 + (-w $nofile);
1658 EXPECT
1659 Use of uninitialized value in addition (+) at - line 4.
1660 ########
1661 use warnings 'uninitialized';
1662 my $nofile = '/no/such/file';
1663 my $v;
1664 $v = 1 + (-x $nofile);
1665 EXPECT
1666 Use of uninitialized value in addition (+) at - line 4.
1667 ########
1668 use warnings 'uninitialized';
1669 my $nofile = '/no/such/file';
1670 my $v;
1671 $v = 1 + (-o $nofile);
1672 EXPECT
1673 Use of uninitialized value in addition (+) at - line 4.
1674 ########
1675 use warnings 'uninitialized';
1676 my $nofile = '/no/such/file';
1677 my $v;
1678 $v = 1 + (-R $nofile);
1679 EXPECT
1680 Use of uninitialized value in addition (+) at - line 4.
1681 ########
1682 use warnings 'uninitialized';
1683 my $nofile = '/no/such/file';
1684 my $v;
1685 $v = 1 + (-W $nofile);
1686 EXPECT
1687 Use of uninitialized value in addition (+) at - line 4.
1688 ########
1689 use warnings 'uninitialized';
1690 my $nofile = '/no/such/file';
1691 my $v;
1692 $v = 1 + (-X $nofile);
1693 EXPECT
1694 Use of uninitialized value in addition (+) at - line 4.
1695 ########
1696 use warnings 'uninitialized';
1697 my $nofile = '/no/such/file';
1698 my $v;
1699 $v = 1 + (-O $nofile);
1700 EXPECT
1701 Use of uninitialized value in addition (+) at - line 4.
1702 ########
1703 use warnings 'uninitialized';
1704 my $nofile = '/no/such/file';
1705 my $v;
1706 $v = 1 + (-e $nofile);
1707 EXPECT
1708 Use of uninitialized value in addition (+) at - line 4.
1709 ########
1710 use warnings 'uninitialized';
1711 my $nofile = '/no/such/file';
1712 my $v;
1713 $v = 1 + (-z $nofile);
1714 EXPECT
1715 Use of uninitialized value in addition (+) at - line 4.
1716 ########
1717 use warnings 'uninitialized';
1718 my $nofile = '/no/such/file';
1719 my $v;
1720 $v = 1 + (-s $nofile);
1721 EXPECT
1722 Use of uninitialized value in addition (+) at - line 4.
1723 ########
1724 use warnings 'uninitialized';
1725 my $nofile = '/no/such/file';
1726 my $v;
1727 $v = 1 + (-f $nofile);
1728 EXPECT
1729 Use of uninitialized value in addition (+) at - line 4.
1730 ########
1731 use warnings 'uninitialized';
1732 my $nofile = '/no/such/file';
1733 my $v;
1734 $v = 1 + (-d $nofile);
1735 EXPECT
1736 Use of uninitialized value in addition (+) at - line 4.
1737 ########
1738 use warnings 'uninitialized';
1739 my $nofile = '/no/such/file';
1740 my $v;
1741 $v = 1 + (-l $nofile);
1742 EXPECT
1743 Use of uninitialized value in addition (+) at - line 4.
1744 ########
1745 use warnings 'uninitialized';
1746 my $nofile = '/no/such/file';
1747 my $v;
1748 $v = 1 + (-p $nofile);
1749 EXPECT
1750 Use of uninitialized value in addition (+) at - line 4.
1751 ########
1752 use warnings 'uninitialized';
1753 my $nofile = '/no/such/file';
1754 my $v;
1755 $v = 1 + (-S $nofile);
1756 EXPECT
1757 Use of uninitialized value in addition (+) at - line 4.
1758 ########
1759 use warnings 'uninitialized';
1760 my $nofile = '/no/such/file';
1761 my $v;
1762 $v = 1 + (-b $nofile);
1763 EXPECT
1764 Use of uninitialized value in addition (+) at - line 4.
1765 ########
1766 use warnings 'uninitialized';
1767 my $nofile = '/no/such/file';
1768 my $v;
1769 $v = 1 + (-c $nofile);
1770 EXPECT
1771 Use of uninitialized value in addition (+) at - line 4.
1772 ########
1773 use warnings 'uninitialized';
1774 my $nofile = '/no/such/file';
1775 my $v;
1776 $v = 1 + (-t $nofile);
1777 EXPECT
1778 Use of uninitialized value in addition (+) at - line 4.
1779 ########
1780 use warnings 'uninitialized';
1781 my $nofile = '/no/such/file';
1782 my $v;
1783 $v = 1 + (-u $nofile);
1784 EXPECT
1785 Use of uninitialized value in addition (+) at - line 4.
1786 ########
1787 use warnings 'uninitialized';
1788 my $nofile = '/no/such/file';
1789 my $v;
1790 $v = 1 + (-g $nofile);
1791 EXPECT
1792 Use of uninitialized value in addition (+) at - line 4.
1793 ########
1794 use warnings 'uninitialized';
1795 my $nofile = '/no/such/file';
1796 my $v;
1797 $v = 1 + (-T $nofile);
1798 EXPECT
1799 Use of uninitialized value in addition (+) at - line 4.
1800 ########
1801 use warnings 'uninitialized';
1802 my $nofile = '/no/such/file';
1803 my $v;
1804 $v = 1 + (-B $nofile);
1805 EXPECT
1806 Use of uninitialized value in addition (+) at - line 4.
1807 ########
1808 use warnings 'uninitialized';
1809 my $nofile = '/no/such/file';
1810 my $v;
1811 $v = 1 + (-M $nofile);
1812 EXPECT
1813 Use of uninitialized value in addition (+) at - line 4.
1814 ########
1815 use warnings 'uninitialized';
1816 my $nofile = '/no/such/file';
1817 my $v;
1818 $v = 1 + (-A $nofile);
1819 EXPECT
1820 Use of uninitialized value in addition (+) at - line 4.
1821 ########
1822 use warnings 'uninitialized';
1823 my $nofile = '/no/such/file';
1824 my $v;
1825 $v = 1 + (-C $nofile);
1826 EXPECT
1827 Use of uninitialized value in addition (+) at - line 4.
1828 ########
1829 use warnings 'uninitialized';
1830 my $nofile = '/no/such/file';
1831 my $v;
1832 $v = 1 + eval { readlink $nofile };
1833 EXPECT
1834 Use of uninitialized value in addition (+) at - line 4.
1835 ########
1836 use warnings 'uninitialized';
1837 my $nofile = '/no/such/file';
1838 my $v;
1839 $v = 1 + opendir($f, $nofile);
1840 EXPECT
1841 Use of uninitialized value in addition (+) at - line 4.
1842 ########
1843 use warnings 'uninitialized';
1844 my $nofile = '/no/such/file';
1845 my $v;
1846 $v = 1 + undef;
1847 EXPECT
1848 Use of uninitialized value in addition (+) at - line 4.
1849 ########
1850 use warnings 'uninitialized';
1851 my $nofile = '/no/such/file';
1852 my $v;
1853 my $x = 1; $v = 1 + undef($x);
1854 EXPECT
1855 Use of uninitialized value in addition (+) at - line 4.
1856 ########
1857 use warnings 'uninitialized';
1858 my $v;
1859 my $emptys = "";
1860 $v = 1 + substr($emptys,2,1);
1861 EXPECT
1862 Use of uninitialized value in addition (+) at - line 4.
1863 ########
1864 use warnings 'uninitialized';
1865 my $v;
1866 my @emptya;
1867 $v = 1 + each @emptya;
1868 EXPECT
1869 Use of uninitialized value in addition (+) at - line 4.
1870 ########
1871 use warnings 'uninitialized';
1872 my $v;
1873 my %emptyh;
1874 $v = 1 + each %emptyh;
1875 EXPECT
1876 Use of uninitialized value in addition (+) at - line 4.
1877 ########
1878 use warnings 'uninitialized';
1879 my $v;
1880 my @emptya;
1881 $v = 1 + sort @emptya;
1882 EXPECT
1883 Use of uninitialized value in addition (+) at - line 4.
1884 ########
1885 use warnings 'uninitialized';
1886 my $v;
1887 my $zero = 0; $v = 1 + caller($zero);
1888 EXPECT
1889 Use of uninitialized value in addition (+) at - line 3.
1890 ########
1891 use warnings 'uninitialized';
1892 my $nofile = '/no/such/file';
1893 my $v;
1894 $v = 1 + do $nofile;
1895 EXPECT
1896 Use of uninitialized value in addition (+) at - line 4.
1897 ########
1898 use warnings 'uninitialized';
1899 my $v;
1900 my $fn = sub {};
1901 $v = 1 + prototype $fn;
1902 EXPECT
1903 Use of uninitialized value in addition (+) at - line 4.
1904 ########
1905 use warnings 'uninitialized';
1906 my $v;
1907 my $fn = sub {};
1908 $v = 1 + (1 ~~ $fn);
1909 EXPECT
1910 Use of uninitialized value in addition (+) at - line 4.
1911 ########
1912 use warnings 'uninitialized';
1913 my $v;
1914 my $f = "";
1915 $v = 1 + (print STDIN $f); # print to STDIN returns undef
1916 EXPECT
1917 Use of uninitialized value in addition (+) at - line 4.
1918 ########
1919 use warnings 'uninitialized';
1920 my $v;
1921 my $f = "";
1922 $v = 1 + (printf STDIN "%s", $f);
1923 EXPECT
1924 Use of uninitialized value in addition (+) at - line 4.
1925 ########
1926 use warnings 'uninitialized';
1927 my $v;
1928 my $f = "";
1929 { use feature 'say'; $v = 1 + (say STDIN "%s", $f); }
1930 EXPECT
1931 Use of uninitialized value in addition (+) at - line 4.
1932 ########
1933 use warnings 'uninitialized';
1934 my $v;
1935 my $f = "";
1936 $v = 1 + (unpack("",$f));
1937 EXPECT
1938 Use of uninitialized value in addition (+) at - line 4.
1939 ########
1940 use warnings 'uninitialized';
1941 my $nofile = '/no/such/file';
1942 my $v;
1943 my $f = "";
1944 $v = 1 + sysopen($f, $nofile, 0);
1945 EXPECT
1946 Use of uninitialized value in addition (+) at - line 5.
1947 ########
1948 use warnings 'uninitialized';
1949 my $v;
1950 { my $x = -1; $v = 1 + sysseek(DATA, $x, 0); }
1951 __END__
1952 EXPECT
1953 Use of uninitialized value in addition (+) at - line 3.
1954 ########
1955 use warnings 'uninitialized';
1956 delete $::{'Foo::'};
1957 my $moo = $Foo::BAR + 42;
1958 __END__
1959 EXPECT
1960 Use of uninitialized value in addition (+) at - line 3.