3 Test the appearance of variable names in "Use of uninitialized value"
6 The following ops aren't tested, mainly because they do IO or non-portable
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
19 ---------------------------------------------------
23 use warnings 'uninitialized';
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.
35 use warnings 'uninitialized';
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.
51 use warnings 'uninitialized';
58 $v = $ma[-1] + $ma[-2];
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.
69 use warnings 'uninitialized';
71 my @mau = (undef) x 258;
72 my %mhu = ('foo', undef, 'bar', undef);
78 $v = $mau[7] + $mau[8];
79 $v = $mau[256] + $mau[257];
80 $v = $mau[-1] + $mau[-2];
81 $v = $mhu{foo} + $mhu{bar};
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.
96 use warnings 'uninitialized';
104 $v = $ga[10] + $ga[11];
105 $v = $ga[-10] + $ga[-11];
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.
116 use warnings 'uninitialized';
118 our @gau = (undef) x 258;
119 our %ghu = ('foo', undef, 'bar', undef);
125 $v = $gau[10] + $gau[11];
126 $v = $gau[256] + $gau[257];
127 $v = $gau[-1] + $gau[-2];
128 $v = $ghu{foo} + $ghu{bar};
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.
143 use warnings 'uninitialized';
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);
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};
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.
176 use warnings 'uninitialized';
177 my ($m1, $m2, @ma, %mh, $v);
178 our ($g1, $g2, @ga, %gh);
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.
208 use warnings 'uninitialized';
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.
231 use warnings 'uninitialized';
233 sub X::TIEARRAY { bless [], 'X' }
234 sub X::TIEHASH { bless [], 'X' }
235 sub X::FETCH { undef }
244 $v = $mat[0] + $mat[1];
246 $v = $mat[1000] + $mat[1001];
248 $v = sin $mat[$index1];
249 $v = $mat[$index1] + $mat[$index2];
252 $v = $mht{foo} + $mht{bar};
254 $v = sin $mht{$key1};
255 $v = $mht{$key1} + $mht{$key2};
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.
276 use warnings 'uninitialized';
281 print STDERR $ga[1000];
282 print STDERR $m1, $g1, $ga[1],$m2;
283 print STDERR "", $ga[1],"";
285 Use of uninitialized value $ga[1000] in print at - line 5.
286 Use of uninitialized value $ga[1000] 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 $ga[1] in print at - line 8.
293 use warnings 'uninitialized';
297 close $m1; # exercises rv2gv
298 close $g1; # exercises rv2gv
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.
303 use warnings 'uninitialized';
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.
331 use warnings 'uninitialized';
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.
360 use warnings 'uninitialized';
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)
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)
374 use warnings 'uninitialized';
378 my ($s3,$s4); chomp ($s3,$s4);
379 my ($s5,$s6); chop ($s5,$s6);
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 $s4 in chomp at - line 5.
384 Use of uninitialized value $s3 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.
388 use warnings 'uninitialized';
395 chomp ($x, $y); chop ($x, $y);
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 $y in chomp at - line 8.
400 Use of uninitialized value ${$/} in chomp at - line 8.
401 Use of uninitialized value $y in chop at - line 8.
403 use warnings 'uninitialized';
408 delete @ma[$m1, $g1];
410 delete @mh{$m1, $g1};
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.
419 use warnings 'uninitialized';
423 my @a = @ma[$m1, $g1];
424 @a = (4,5)[$m1, $g1];
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.
434 use warnings 'uninitialized';
435 my ($m1, @ma, %mh, $v);
438 $v = exists $ma[$m1];
439 $v = exists $ga[$g1];
440 $v = exists $mh{$m1};
441 $v = exists $gh{$g1};
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.
448 use warnings 'uninitialized';
456 Use of uninitialized value $m1 in left bitshift (<<) at - line 6.
457 Use of uninitialized value $x1 in left bitshift (<<) at - line 6.
458 Use of uninitialized value $g1 in left bitshift (<<) at - line 7.
459 Use of uninitialized value $x2 in left bitshift (<<) at - line 7.
461 use warnings 'uninitialized';
469 eval {$v = $m1 / $g1};
471 eval {$v = $m1 % $g1};
482 Use of uninitialized value $g1 in integer addition (+) at - line 6.
483 Use of uninitialized value $m1 in integer addition (+) at - line 6.
484 Use of uninitialized value $g1 in integer subtraction (-) at - line 7.
485 Use of uninitialized value $m1 in integer subtraction (-) at - line 7.
486 Use of uninitialized value $g1 in integer multiplication (*) at - line 8.
487 Use of uninitialized value $m1 in integer multiplication (*) at - line 8.
488 Use of uninitialized value $g1 in integer division (/) at - line 9.
489 Use of uninitialized value $m2 in integer division (/) at - line 10.
490 Use of uninitialized value $g1 in integer modulus (%) at - line 11.
491 Use of uninitialized value $m1 in integer modulus (%) at - line 11.
492 Use of uninitialized value $m2 in integer modulus (%) at - line 12.
493 Use of uninitialized value $g1 in integer lt (<) at - line 13.
494 Use of uninitialized value $m1 in integer lt (<) at - line 13.
495 Use of uninitialized value $g1 in integer gt (>) at - line 14.
496 Use of uninitialized value $m1 in integer gt (>) at - line 14.
497 Use of uninitialized value $g1 in integer le (<=) at - line 15.
498 Use of uninitialized value $m1 in integer le (<=) at - line 15.
499 Use of uninitialized value $g1 in integer ge (>=) at - line 16.
500 Use of uninitialized value $m1 in integer ge (>=) at - line 16.
501 Use of uninitialized value $g1 in integer eq (==) at - line 17.
502 Use of uninitialized value $m1 in integer eq (==) at - line 17.
503 Use of uninitialized value $g1 in integer ne (!=) at - line 18.
504 Use of uninitialized value $m1 in integer ne (!=) at - line 18.
505 Use of uninitialized value $g1 in integer comparison (<=>) at - line 19.
506 Use of uninitialized value $m1 in integer comparison (<=>) at - line 19.
507 Use of uninitialized value $m1 in integer negation (-) at - line 20.
509 use warnings 'uninitialized';
516 Use of uninitialized value $g1 in int at - line 5.
517 Use of uninitialized value $g2 in abs at - line 6.
519 use warnings 'uninitialized';
524 $v = pack "i*", $m2, $g1, $g2;
525 my @unpack = unpack $m1, $m2;
527 Use of uninitialized value $m1 in pack at - line 5.
528 Use of uninitialized value $m2 in pack at - line 6.
529 Use of uninitialized value $g1 in pack at - line 6.
530 Use of uninitialized value $g2 in pack at - line 6.
531 Use of uninitialized value $m1 in unpack at - line 7.
532 Use of uninitialized value $m2 in unpack at - line 7.
534 use warnings 'uninitialized';
539 @sort = sort $m1, $g1;
540 @sort = sort {$a <=> $b} $m1, $g1;
541 sub sortf {$a-1 <=> $b-1};
542 @sort = sort &sortf, $m1, $g1;
544 Use of uninitialized value $m1 in sort at - line 6.
545 Use of uninitialized value $g1 in sort at - line 6.
546 Use of uninitialized value $m1 in sort at - line 6.
547 Use of uninitialized value $g1 in sort at - line 6.
548 Use of uninitialized value $m1 in sort at - line 7.
549 Use of uninitialized value $g1 in sort at - line 7.
550 Use of uninitialized value $m1 in sort at - line 7.
551 Use of uninitialized value $g1 in sort at - line 7.
552 Use of uninitialized value $a in subtraction (-) at - line 8.
553 Use of uninitialized value $b in subtraction (-) at - line 8.
554 Use of uninitialized value $m1 in sort at - line 9.
555 Use of uninitialized value $g1 in sort at - line 9.
556 Use of uninitialized value $m1 in sort at - line 9.
557 Use of uninitialized value $m1 in sort at - line 9.
558 Use of uninitialized value $g1 in sort at - line 9.
559 Use of uninitialized value $g1 in sort at - line 9.
561 use warnings 'uninitialized';
565 eval { $v = $m1 / $g1 };
567 eval { $v = $m1 % $g1 };
582 Use of uninitialized value $g1 in division (/) at - line 5.
583 Use of uninitialized value $m1 in division (/) at - line 5.
584 Use of uninitialized value $m2 in division (/) at - line 6.
585 Use of uninitialized value $g1 in modulus (%) at - line 7.
586 Use of uninitialized value $m1 in modulus (%) at - line 7.
587 Use of uninitialized value $m2 in modulus (%) at - line 8.
588 Use of uninitialized value $g1 in numeric eq (==) at - line 9.
589 Use of uninitialized value $m1 in numeric eq (==) at - line 9.
590 Use of uninitialized value $g1 in numeric ge (>=) at - line 10.
591 Use of uninitialized value $m1 in numeric ge (>=) at - line 10.
592 Use of uninitialized value $g1 in numeric gt (>) at - line 11.
593 Use of uninitialized value $m1 in numeric gt (>) at - line 11.
594 Use of uninitialized value $g1 in numeric le (<=) at - line 12.
595 Use of uninitialized value $m1 in numeric le (<=) at - line 12.
596 Use of uninitialized value $g1 in numeric lt (<) at - line 13.
597 Use of uninitialized value $m1 in numeric lt (<) at - line 13.
598 Use of uninitialized value $g1 in multiplication (*) at - line 14.
599 Use of uninitialized value $m1 in multiplication (*) at - line 14.
600 Use of uninitialized value $g1 in numeric comparison (<=>) at - line 15.
601 Use of uninitialized value $m1 in numeric comparison (<=>) at - line 15.
602 Use of uninitialized value $g1 in numeric ne (!=) at - line 16.
603 Use of uninitialized value $m1 in numeric ne (!=) at - line 16.
604 Use of uninitialized value $g1 in subtraction (-) at - line 17.
605 Use of uninitialized value $m1 in subtraction (-) at - line 17.
606 Use of uninitialized value $g1 in exponentiation (**) at - line 18.
607 Use of uninitialized value $m1 in exponentiation (**) at - line 18.
608 Use of uninitialized value $g1 in addition (+) at - line 19.
609 Use of uninitialized value $m1 in addition (+) at - line 19.
610 Use of uninitialized value $g1 in subtraction (-) at - line 20.
611 Use of uninitialized value $m1 in subtraction (-) at - line 20.
613 use warnings 'uninitialized';
624 Use of uninitialized value $m1 in glob elem at - line 5.
625 Use of uninitialized value $g1 in subroutine prototype at - line 6.
626 Use of uninitialized value $g1 in bless at - line 7.
627 Use of uninitialized value $m1 in quoted execution (``, qx) at - line 8.
628 Use of uninitialized value $g1 in concatenation (.) or string at - line 10.
629 Use of uninitialized value $m1 in concatenation (.) or string at - line 10.
631 use warnings 'uninitialized';
642 s/$m1/$g1/; undef $_;
652 s/$m1/$g1/; undef $_;
658 $g2 =~ s/y/z/; undef $g2;
659 $g2 =~ s/$m1/z/; undef $g2;
660 $g2 =~ s//$g1/; undef $g2;
661 $g2 =~ s/$m1/$g1/; undef $g2;
662 $g2 =~ tr/x/y/; undef $g2; # XXX can't extract var name yet
673 Use of uninitialized value $_ in pattern match (m//) at - line 5.
674 Use of uninitialized value $m1 in regexp compilation at - line 6.
675 Use of uninitialized value $_ in pattern match (m//) at - line 6.
676 Use of uninitialized value $g1 in regexp compilation at - line 7.
677 Use of uninitialized value $_ in pattern match (m//) at - line 7.
678 Use of uninitialized value $_ in substitution (s///) at - line 9.
679 Use of uninitialized value $m1 in regexp compilation at - line 10.
680 Use of uninitialized value $_ in substitution (s///) at - line 10.
681 Use of uninitialized value $_ in substitution (s///) at - line 10.
682 Use of uninitialized value $_ in substitution (s///) at - line 11.
683 Use of uninitialized value $g1 in substitution (s///) at - line 11.
684 Use of uninitialized value $_ in substitution (s///) at - line 11.
685 Use of uninitialized value $g1 in substitution (s///) at - line 11.
686 Use of uninitialized value $m1 in regexp compilation at - line 12.
687 Use of uninitialized value $_ in substitution (s///) at - line 12.
688 Use of uninitialized value $_ in substitution (s///) at - line 12.
689 Use of uninitialized value $g1 in substitution iterator at - line 12.
690 Use of uninitialized value $_ in transliteration (tr///) at - line 13.
691 Use of uninitialized value $_ in pattern match (m//) at - line 16.
692 Use of uninitialized value $m1 in regexp compilation at - line 17.
693 Use of uninitialized value $_ in pattern match (m//) at - line 17.
694 Use of uninitialized value $g1 in regexp compilation at - line 18.
695 Use of uninitialized value $_ in pattern match (m//) at - line 18.
696 Use of uninitialized value $_ in substitution (s///) at - line 19.
697 Use of uninitialized value $m1 in regexp compilation at - line 20.
698 Use of uninitialized value $_ in substitution (s///) at - line 20.
699 Use of uninitialized value $_ in substitution (s///) at - line 20.
700 Use of uninitialized value $_ in substitution (s///) at - line 21.
701 Use of uninitialized value $g1 in substitution (s///) at - line 21.
702 Use of uninitialized value $_ in substitution (s///) at - line 21.
703 Use of uninitialized value $g1 in substitution (s///) at - line 21.
704 Use of uninitialized value $m1 in regexp compilation at - line 22.
705 Use of uninitialized value $_ in substitution (s///) at - line 22.
706 Use of uninitialized value $_ in substitution (s///) at - line 22.
707 Use of uninitialized value $g1 in substitution iterator at - line 22.
708 Use of uninitialized value $_ in transliteration (tr///) at - line 23.
709 Use of uninitialized value $g2 in pattern match (m//) at - line 25.
710 Use of uninitialized value $m1 in regexp compilation at - line 26.
711 Use of uninitialized value $g2 in pattern match (m//) at - line 26.
712 Use of uninitialized value $g1 in regexp compilation at - line 27.
713 Use of uninitialized value $g2 in pattern match (m//) at - line 27.
714 Use of uninitialized value $g2 in substitution (s///) at - line 28.
715 Use of uninitialized value $m1 in regexp compilation at - line 29.
716 Use of uninitialized value $g2 in substitution (s///) at - line 29.
717 Use of uninitialized value $g2 in substitution (s///) at - line 29.
718 Use of uninitialized value $g2 in substitution (s///) at - line 30.
719 Use of uninitialized value $g1 in substitution (s///) at - line 30.
720 Use of uninitialized value $g2 in substitution (s///) at - line 30.
721 Use of uninitialized value $g1 in substitution (s///) at - line 30.
722 Use of uninitialized value $m1 in regexp compilation at - line 31.
723 Use of uninitialized value $g2 in substitution (s///) at - line 31.
724 Use of uninitialized value $g2 in substitution (s///) at - line 31.
725 Use of uninitialized value $g1 in substitution iterator at - line 31.
726 Use of uninitialized value in transliteration (tr///) at - line 32.
727 Use of uninitialized value $m1 in regexp compilation at - line 35.
728 Use of uninitialized value $g1 in regexp compilation at - line 36.
729 Use of uninitialized value $m1 in regexp compilation at - line 38.
730 Use of uninitialized value $g1 in substitution (s///) at - line 39.
731 Use of uninitialized value $m1 in regexp compilation at - line 40.
732 Use of uninitialized value $g1 in substitution iterator at - line 40.
733 Use of uninitialized value $m1 in substitution iterator at - line 41.
735 use warnings 'uninitialized';
738 { my $foo = "abc"; (substr($foo,0,0)) = ($m1) }
740 Use of uninitialized value $m1 in list assignment at - line 4.
742 use warnings 'uninitialized';
748 Use of uninitialized value $_ in study at - line 4.
749 Use of uninitialized value $g1 in study at - line 5.
751 use warnings 'uninitialized';
757 Use of uninitialized value $_ in scalar assignment at - line 4.
758 Use of uninitialized value $m1 in scalar assignment at - line 5.
760 use warnings 'uninitialized';
763 { my $x = "a" x $m1 } # NB LHS of repeat does not warn
764 { my @x = ("a") x $m1 }
766 Use of uninitialized value $m1 in repeat (x) at - line 4.
767 Use of uninitialized value $m1 in repeat (x) at - line 5.
769 use warnings 'uninitialized';
783 Use of uninitialized value $m1 in string at - line 5.
784 Use of uninitialized value $m1 in string lt at - line 7.
785 Use of uninitialized value $g1 in string lt at - line 7.
786 Use of uninitialized value $m1 in string le at - line 8.
787 Use of uninitialized value $g1 in string le at - line 8.
788 Use of uninitialized value $m1 in string gt at - line 9.
789 Use of uninitialized value $g1 in string gt at - line 9.
790 Use of uninitialized value $m1 in string ge at - line 10.
791 Use of uninitialized value $g1 in string ge at - line 10.
792 Use of uninitialized value $m1 in string eq at - line 11.
793 Use of uninitialized value $g1 in string eq at - line 11.
794 Use of uninitialized value $m1 in string ne at - line 12.
795 Use of uninitialized value $g1 in string ne at - line 12.
796 Use of uninitialized value $m1 in string comparison (cmp) at - line 13.
797 Use of uninitialized value $g1 in string comparison (cmp) at - line 13.
799 use warnings 'uninitialized';
816 Use of uninitialized value $g1 in atan2 at - line 5.
817 Use of uninitialized value $m1 in atan2 at - line 5.
818 Use of uninitialized value $m1 in sin at - line 6.
819 Use of uninitialized value $m1 in cos at - line 7.
820 Use of uninitialized value $m1 in rand at - line 8.
821 Use of uninitialized value $m1 in srand at - line 9.
822 Use of uninitialized value $m1 in exp at - line 10.
823 Use of uninitialized value $m1 in log at - line 11.
824 Use of uninitialized value $m1 in sqrt at - line 12.
825 Use of uninitialized value $m1 in hex at - line 13.
826 Use of uninitialized value $m1 in oct at - line 14.
827 Use of uninitialized value $m1 in length at - line 15.
828 Use of uninitialized value $_ in length at - line 16.
830 use warnings 'uninitialized';
834 $v = substr $m1, $g1;
835 $v = substr $m1, $g1, $m2;
836 $v = substr $m1, $g1, $m2, $g2; undef $m1;
837 substr($m1, $g1) = $g2; undef $m1; # NB global2
838 substr($m1, $g1, $m2) = $g2; undef $m1; # isn't identified
840 $v = eval {vec ($m1, $g1, $m2)};
841 eval {vec ($m1, $g1, $m2) = $g2}; undef $m1; # ditto
844 $v = index $m1, $m2, $g1;
845 $v = rindex $m1, $m2;
846 $v = rindex $m1, $m2, $g1;
848 Use of uninitialized value $g1 in substr at - line 5.
849 Use of uninitialized value $m1 in substr at - line 5.
850 Use of uninitialized value $m2 in substr at - line 6.
851 Use of uninitialized value $g1 in substr at - line 6.
852 Use of uninitialized value $m1 in substr at - line 6.
853 Use of uninitialized value $g2 in substr at - line 7.
854 Use of uninitialized value $m2 in substr at - line 7.
855 Use of uninitialized value $g1 in substr at - line 7.
856 Use of uninitialized value $m1 in substr at - line 7.
857 Use of uninitialized value $m1 in substr at - line 7.
858 Use of uninitialized value $g1 in substr at - line 8.
859 Use of uninitialized value $m1 in substr at - line 8.
860 Use of uninitialized value in scalar assignment at - line 8.
861 Use of uninitialized value $m2 in substr at - line 9.
862 Use of uninitialized value $g1 in substr at - line 9.
863 Use of uninitialized value $m1 in substr at - line 9.
864 Use of uninitialized value in scalar assignment at - line 9.
865 Use of uninitialized value $m2 in vec at - line 11.
866 Use of uninitialized value $g1 in vec at - line 11.
867 Use of uninitialized value $m1 in vec at - line 11.
868 Use of uninitialized value $m2 in vec at - line 12.
869 Use of uninitialized value $g1 in vec at - line 12.
870 Use of uninitialized value $m1 in vec at - line 12.
871 Use of uninitialized value $m1 in index at - line 14.
872 Use of uninitialized value $m2 in index at - line 14.
873 Use of uninitialized value $g1 in index at - line 15.
874 Use of uninitialized value $m1 in index at - line 15.
875 Use of uninitialized value $m2 in index at - line 15.
876 Use of uninitialized value $m2 in rindex at - line 16.
877 Use of uninitialized value $m1 in rindex at - line 16.
878 Use of uninitialized value $g1 in rindex at - line 17.
879 Use of uninitialized value $m2 in rindex at - line 17.
880 Use of uninitialized value $m1 in rindex at - line 17.
882 use warnings 'uninitialized';
887 $v = sprintf '%d%d%d%d', $m1, $m2, $g1, $g2;
888 my $m3; eval {formline $m3 };
889 formline '@<<@<<@<<@<<', $m1, $m2, $g1, $g2;
891 Use of uninitialized value $m1 in sprintf at - line 5.
892 Use of uninitialized value $m1 in sprintf at - line 6.
893 Use of uninitialized value $m2 in sprintf at - line 6.
894 Use of uninitialized value $g1 in sprintf at - line 6.
895 Use of uninitialized value $g2 in sprintf at - line 6.
896 Use of uninitialized value $m3 in formline at - line 7.
897 Use of uninitialized value $m1 in formline at - line 8.
898 Use of uninitialized value $m2 in formline at - line 8.
899 Use of uninitialized value $g1 in formline at - line 8.
900 Use of uninitialized value $g2 in formline at - line 8.
902 use warnings 'uninitialized';
913 # XXX these functions don't warn!
926 Use of uninitialized value $m1 in crypt at - line 5.
927 Use of uninitialized value $g1 in crypt at - line 5.
928 Use of uninitialized value $_ in ord at - line 7.
929 Use of uninitialized value $m1 in ord at - line 8.
930 Use of uninitialized value $_ in chr at - line 9.
931 Use of uninitialized value $m1 in chr at - line 10.
932 Use of uninitialized value $_ in quotemeta at - line 22.
933 Use of uninitialized value $m1 in quotemeta at - line 23.
935 use warnings 'uninitialized';
936 my ($m1, $v1, $v2, $v3, $v4);
939 ($v1,$v2,$v3,$v4) = split;
940 ($v1,$v2,$v3,$v4) = split $m1;
941 ($v1,$v2,$v3,$v4) = split $m1, $m2;
942 ($v1,$v2,$v3,$v4) = split $m1, $m2, $g1;
946 $v3 = join $m1, $m2, $m3;
948 Use of uninitialized value $_ in split at - line 5.
949 Use of uninitialized value $m1 in regexp compilation at - line 6.
950 Use of uninitialized value $_ in split at - line 6.
951 Use of uninitialized value $m1 in regexp compilation at - line 7.
952 Use of uninitialized value $m2 in split at - line 7.
953 Use of uninitialized value $m1 in regexp compilation at - line 8.
954 Use of uninitialized value $g1 in split at - line 8.
955 Use of uninitialized value $m2 in split at - line 8.
956 Use of uninitialized value $m1 in join or string at - line 10.
957 Use of uninitialized value $m1 in join or string at - line 11.
958 Use of uninitialized value $m2 in join or string at - line 11.
959 Use of uninitialized value $m1 in join or string at - line 12.
960 Use of uninitialized value $m2 in join or string at - line 12.
961 Use of uninitialized value $m3 in join or string at - line 12.
963 use warnings 'uninitialized';
964 my ($m1, $m2, @ma, $v);
966 our @foo1=(1,undef); chomp @foo1;
967 my @foo2=(1,undef); chomp @foo2;
968 our @foo3=(1,undef); chop @foo3;
969 my @foo4=(1,undef); chop @foo4;
970 our @foo5=(1,undef); $v = sprintf "%s%s",@foo5;
971 my @foo6=(1,undef); $v = sprintf "%s%s",@foo6;
972 our %foo7=('foo'=>'bar','baz'=>undef); $v = sprintf "%s%s",%foo7;
973 my %foo8=('foo'=>'bar','baz'=>undef); $v = sprintf "%s%s",%foo8;
974 our @foo9 =(1,undef); $v = sprintf "%s%s%s%s",$m1,@foo9, $ma[2];
975 my @foo10=(1,undef); $v = sprintf "%s%s%s%s",$m2,@foo10,$ma[2];
976 our %foo11=('foo'=>'bar','baz'=>undef); $v = join '', %foo11;
977 my %foo12=('foo'=>'bar','baz'=>undef); $v = join '', %foo12;
978 our %foo13=(1..2000,'foo'=>'bar','baz'=>undef); $v = join '', %foo13;
979 my %foo14=(1..2000,'foo'=>'bar','baz'=>undef); $v = join '', %foo14;
981 Use of uninitialized value $foo1[1] in chomp at - line 4.
982 Use of uninitialized value $foo2[1] in chomp at - line 5.
983 Use of uninitialized value $foo3[1] in chop at - line 6.
984 Use of uninitialized value $foo4[1] in chop at - line 7.
985 Use of uninitialized value $foo5[1] in sprintf at - line 8.
986 Use of uninitialized value $foo6[1] in sprintf at - line 9.
987 Use of uninitialized value $foo7{"baz"} in sprintf at - line 10.
988 Use of uninitialized value $foo8{"baz"} in sprintf at - line 11.
989 Use of uninitialized value $m1 in sprintf at - line 12.
990 Use of uninitialized value $foo9[1] in sprintf at - line 12.
991 Use of uninitialized value in sprintf at - line 12.
992 Use of uninitialized value $m2 in sprintf at - line 13.
993 Use of uninitialized value $foo10[1] in sprintf at - line 13.
994 Use of uninitialized value in sprintf at - line 13.
995 Use of uninitialized value $foo11{"baz"} in join or string at - line 14.
996 Use of uninitialized value $foo12{"baz"} in join or string at - line 15.
997 Use of uninitialized value within %foo13 in join or string at - line 16.
998 Use of uninitialized value within %foo14 in join or string at - line 17.
1000 use warnings 'uninitialized';
1003 undef $^A; $v = $^A + ${^FOO}; # should output '^A' not chr(1)
1008 Use of uninitialized value $^FOO in addition (+) at - line 4.
1009 Use of uninitialized value $^A in addition (+) at - line 4.
1010 Use of uninitialized value $GLOB1 in addition (+) at - line 6.
1011 Use of uninitialized value $GLOB2 in addition (+) at - line 7.
1013 use warnings 'uninitialized';
1016 # check hash key is sanitised
1017 my %h = ("\0011\002\r\n\t\f\"\\abcdefghijklmnopqrstuvwxyz", undef);
1020 Use of uninitialized value $h{"\0011\2\r\n\t\f\"\\abcdefghijkl"...} in join or string at - line 6.
1022 use warnings 'uninitialized';
1026 $v = eval { \&$m1 };
1027 $v = eval { \&$g1 };
1030 @a = splice @a, $m1, $g1;
1031 $v = 1 + splice @a, $m1, $g1;
1033 my $x = bless [], 'Z';
1041 eval { die $m1, $g1 };
1046 Use of uninitialized value $m1 in subroutine dereference at - line 5.
1047 Use of uninitialized value $m1 in subroutine dereference at - line 5.
1048 Use of uninitialized value $g1 in subroutine dereference at - line 6.
1049 Use of uninitialized value $g1 in subroutine dereference at - line 6.
1050 Use of uninitialized value $m1 in splice at - line 9.
1051 Use of uninitialized value $g1 in splice at - line 9.
1052 Use of uninitialized value $m1 in splice at - line 10.
1053 Use of uninitialized value $g1 in splice at - line 10.
1054 Use of uninitialized value in addition (+) at - line 10.
1055 Use of uninitialized value $m1 in method lookup at - line 13.
1056 Use of uninitialized value $m1 in subroutine entry at - line 15.
1057 Use of uninitialized value $g1 in subroutine entry at - line 16.
1058 Use of uninitialized value $m1 in warn at - line 18.
1059 Use of uninitialized value $g1 in warn at - line 18.
1061 Use of uninitialized value $m1 in die at - line 20.
1062 Use of uninitialized value $g1 in die at - line 20.
1063 Use of uninitialized value $m1 in symbol reset at - line 22.
1064 Use of uninitialized value $g1 in symbol reset at - line 23.
1066 use warnings 'uninitialized';
1070 open FOO; # accesses $FOO
1072 open($foo."O"); # accesses $FOO
1073 open my $x; # accesses ${*$x}
1074 open $foobar; # accesses ${*$foobar}
1077 eval { open $y, $m1, $g1 };
1080 sysopen $y, $m1, $m2;
1081 sysopen $y, $m1, $g1, $m2;
1090 Use of uninitialized value $FOO in open at - line 5.
1091 Use of uninitialized value in open at - line 7.
1092 Use of uninitialized value in open at - line 8.
1093 Use of uninitialized value in open at - line 9.
1094 Use of uninitialized value $m1 in open at - line 11.
1095 Use of uninitialized value $m1 in open at - line 12.
1096 Use of uninitialized value $g1 in open at - line 13.
1097 Use of uninitialized value $m2 in sysopen at - line 15.
1098 Use of uninitialized value $m1 in sysopen at - line 15.
1099 Use of uninitialized value $m2 in sysopen at - line 16.
1100 Use of uninitialized value $g1 in sysopen at - line 16.
1101 Use of uninitialized value $m1 in sysopen at - line 16.
1102 Use of uninitialized value $m1 in umask at - line 19.
1103 Use of uninitialized value $g1 in umask at - line 20.
1104 Use of uninitialized value $m1 in binmode at - line 23.
1105 Use of uninitialized value $m1 in binmode at - line 23.
1107 use warnings 'uninitialized';
1111 eval { my $x; tie $x, $m1 };
1113 eval { my $x; read $m1, $x, $g1 };
1114 eval { my $x; read $m1, $x, $g1, $g2 };
1115 eval { my $x; sysread $m1, $x, $g1 };
1116 eval { my $x; sysread $m1, $x, $g1, $g2 };
1118 Use of uninitialized value $m1 in tie at - line 5.
1119 Use of uninitialized value $m1 in tie at - line 5.
1120 Use of uninitialized value $m1 in ref-to-glob cast at - line 7.
1121 Use of uninitialized value $g1 in read at - line 7.
1122 Use of uninitialized value $m1 in ref-to-glob cast at - line 8.
1123 Use of uninitialized value $g1 in read at - line 8.
1124 Use of uninitialized value $g2 in read at - line 8.
1125 Use of uninitialized value $m1 in ref-to-glob cast at - line 9.
1126 Use of uninitialized value $g1 in sysread at - line 9.
1127 Use of uninitialized value $m1 in ref-to-glob cast at - line 10.
1128 Use of uninitialized value $g1 in sysread at - line 10.
1129 Use of uninitialized value $g2 in sysread at - line 10.
1131 use warnings 'uninitialized';
1136 printf STDERR "%d%d%d%d\n", $m1, $m2, $g1, $g2;
1138 printf STDERR "FOO1:%s\n", $ga[1000];
1139 printf STDERR "FOO2:%s%s%s%s\n", $m1, $g1, $ga[1],$m2;
1140 printf STDERR "FOO3:%s%s%s\n", "X", $ga[1],"Y";
1142 Use of uninitialized value $m1 in printf at - line 5.
1143 Use of uninitialized value $m1 in printf at - line 6.
1144 Use of uninitialized value $m2 in printf at - line 6.
1145 Use of uninitialized value $g1 in printf at - line 6.
1146 Use of uninitialized value $g2 in printf at - line 6.
1148 Use of uninitialized value $ga[1000] in printf at - line 7.
1149 Use of uninitialized value $ga[1000] in printf at - line 8.
1151 Use of uninitialized value $m1 in printf at - line 9.
1152 Use of uninitialized value $g1 in printf at - line 9.
1153 Use of uninitialized value in printf at - line 9.
1154 Use of uninitialized value $m2 in printf at - line 9.
1156 Use of uninitialized value $ga[1] in printf at - line 10.
1159 use warnings 'uninitialized';
1163 eval { my $x; seek $x,$m1, $g1 };
1164 eval { my $x; sysseek $x,$m1, $g1 };
1165 eval { syswrite $m1, $g1 };
1166 # eval { syswrite STDERR, $m1 }; # XXX under utf8, can give
1167 # eval { syswrite STDERR, $m1, $g1 }; # XXX different warnings
1168 # eval { syswrite STDERR, $m1, $g1, $m2 };
1169 eval { my $x; socket $x, $m1, $g1, $m2 };
1170 eval { my ($x,$y); socketpair $x, $y, $m1, $g1, $m2 };
1172 Use of uninitialized value $x in ref-to-glob cast at - line 5.
1173 Use of uninitialized value $g1 in seek at - line 5.
1174 Use of uninitialized value $m1 in seek at - line 5.
1175 Use of uninitialized value $x in ref-to-glob cast at - line 6.
1176 Use of uninitialized value $g1 in sysseek at - line 6.
1177 Use of uninitialized value $m1 in sysseek at - line 6.
1178 Use of uninitialized value $m1 in ref-to-glob cast at - line 7.
1179 Use of uninitialized value $g1 in syswrite at - line 7.
1180 Use of uninitialized value $m2 in socket at - line 11.
1181 Use of uninitialized value $g1 in socket at - line 11.
1182 Use of uninitialized value $m1 in socket at - line 11.
1183 Use of uninitialized value $m2 in socketpair at - line 12.
1184 Use of uninitialized value $g1 in socketpair at - line 12.
1185 Use of uninitialized value $m1 in socketpair at - line 12.
1189 if ( !$Config{d_flock} &&
1190 !$Config{d_fcntl_can_lock} &&
1191 !$Config{d_lockf} ) {
1199 use warnings 'uninitialized';
1202 eval { my $x; flock $x, $g1 };
1204 Use of uninitialized value $x in ref-to-glob cast at - line 16.
1205 Use of uninitialized value $g1 in flock at - line 16.
1207 use warnings 'uninitialized';
1239 # $v = -k $m1; # XXX this is a no-op under win32
1244 Use of uninitialized value $_ in stat at - line 5.
1245 Use of uninitialized value $_ in lstat at - line 6.
1246 Use of uninitialized value $m1 in stat at - line 7.
1247 Use of uninitialized value $g1 in lstat at - line 8.
1248 Use of uninitialized value $m1 in -R at - line 10.
1249 Use of uninitialized value $m1 in -W at - line 11.
1250 Use of uninitialized value $m1 in -X at - line 12.
1251 Use of uninitialized value $m1 in -r at - line 13.
1252 Use of uninitialized value $m1 in -w at - line 14.
1253 Use of uninitialized value $m1 in -x at - line 15.
1254 Use of uninitialized value $m1 in -e at - line 16.
1255 Use of uninitialized value $m1 in -o at - line 17.
1256 Use of uninitialized value $m1 in -O at - line 18.
1257 Use of uninitialized value $m1 in -z at - line 19.
1258 Use of uninitialized value $m1 in -s at - line 20.
1259 Use of uninitialized value $m1 in -M at - line 21.
1260 Use of uninitialized value $m1 in -A at - line 22.
1261 Use of uninitialized value $m1 in -C at - line 23.
1262 Use of uninitialized value $m1 in -S at - line 24.
1263 Use of uninitialized value $m1 in -c at - line 25.
1264 Use of uninitialized value $m1 in -b at - line 26.
1265 Use of uninitialized value $m1 in -f at - line 27.
1266 Use of uninitialized value $m1 in -d at - line 28.
1267 Use of uninitialized value $m1 in -p at - line 29.
1268 Use of uninitialized value $m1 in -l at - line 30.
1269 Use of uninitialized value $m1 in -l at - line 30.
1270 Use of uninitialized value $m1 in -u at - line 31.
1271 Use of uninitialized value $m1 in -g at - line 32.
1272 Use of uninitialized value $m1 in -t at - line 34.
1273 Use of uninitialized value $m1 in -T at - line 35.
1274 Use of uninitialized value $m1 in -B at - line 36.
1276 use warnings 'uninitialized';
1283 Use of uninitialized value $m1 in localtime at - line 5.
1284 Use of uninitialized value $g1 in gmtime at - line 6.
1286 use warnings 'uninitialized';
1292 Use of uninitialized value $_ in eval "string" at - line 4.
1293 Use of uninitialized value $_ in eval "string" at - line 4.
1294 Use of uninitialized value $_ in eval "string" at - line 4.
1295 Use of uninitialized value $m1 in eval "string" at - line 5.
1296 Use of uninitialized value $m1 in eval "string" at - line 5.
1297 Use of uninitialized value $m1 in eval "string" at - line 5.
1299 use warnings 'uninitialized';
1304 Use of uninitialized value $m1 in exit at - line 4.