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';
315 Use of uninitialized value $m1 in scalar dereference at - line 5.
316 Use of uninitialized value $g1 in scalar dereference at - line 6.
317 Use of uninitialized value $m1 in array dereference at - line 8.
318 Use of uninitialized value $g1 in array dereference at - line 9.
319 Use of uninitialized value $m2 in hash dereference at - line 10.
320 Use of uninitialized value $g2 in hash dereference at - line 11.
322 use warnings 'uninitialized';
336 Use of uninitialized value $m1 in bitwise or (|) at - line 5.
337 Use of uninitialized value $m2 in bitwise or (|) at - line 5.
338 Use of uninitialized value $m1 in bitwise and (&) at - line 6.
339 Use of uninitialized value $m2 in bitwise and (&) at - line 6.
340 Use of uninitialized value $m1 in bitwise xor (^) at - line 7.
341 Use of uninitialized value $m2 in bitwise xor (^) at - line 7.
342 Use of uninitialized value $m1 in 1's complement (~) at - line 8.
343 Use of uninitialized value $g1 in bitwise or (|) at - line 10.
344 Use of uninitialized value $g2 in bitwise or (|) at - line 10.
345 Use of uninitialized value $g1 in bitwise and (&) at - line 11.
346 Use of uninitialized value $g2 in bitwise and (&) at - line 11.
347 Use of uninitialized value $g1 in bitwise xor (^) at - line 12.
348 Use of uninitialized value $g2 in bitwise xor (^) at - line 12.
349 Use of uninitialized value $g1 in 1's complement (~) at - line 13.
351 use warnings 'uninitialized';
354 my $tmp1; $v = $tmp1++; # (doesn't warn)
355 our $tmp2; $v = $tmp2++; # (doesn't warn)
356 my $tmp3; $v = ++$tmp1; # (doesn't warn)
357 our $tmp4; $v = ++$tmp2; # (doesn't warn)
359 my $tmp5; $v = $tmp5--; # (doesn't warn)
360 our $tmp6; $v = $tmp6--; # (doesn't warn)
361 my $tmp7; $v = --$tmp7; # (doesn't warn)
362 our $tmp8; $v = --$tmp8; # (doesn't warn)
365 use warnings 'uninitialized';
369 my ($s3,$s4); chomp ($s3,$s4);
370 my ($s5,$s6); chop ($s5,$s6);
372 Use of uninitialized value $s1 in scalar chomp at - line 3.
373 Use of uninitialized value $s2 in scalar chop at - line 4.
374 Use of uninitialized value $s4 in chomp at - line 5.
375 Use of uninitialized value $s3 in chomp at - line 5.
376 Use of uninitialized value $s5 in chop at - line 6.
377 Use of uninitialized value $s6 in chop at - line 6.
379 use warnings 'uninitialized';
386 chomp ($x, $y); chop ($x, $y);
388 Use of uninitialized value ${$/} in scalar chomp at - line 6.
389 Use of uninitialized value ${$/} in chomp at - line 8.
390 Use of uninitialized value $y in chomp at - line 8.
391 Use of uninitialized value ${$/} in chomp at - line 8.
392 Use of uninitialized value $y in chop at - line 8.
394 use warnings 'uninitialized';
399 delete @ma[$m1, $g1];
401 delete @mh{$m1, $g1};
403 Use of uninitialized value $m1 in delete at - line 5.
404 Use of uninitialized value $m1 in delete at - line 6.
405 Use of uninitialized value $g1 in delete at - line 6.
406 Use of uninitialized value $m1 in delete at - line 7.
407 Use of uninitialized value $m1 in delete at - line 8.
408 Use of uninitialized value $g1 in delete at - line 8.
410 use warnings 'uninitialized';
414 my @a = @ma[$m1, $g1];
415 @a = (4,5)[$m1, $g1];
418 Use of uninitialized value $m1 in array slice at - line 5.
419 Use of uninitialized value $g1 in array slice at - line 5.
420 Use of uninitialized value $m1 in list slice at - line 6.
421 Use of uninitialized value $g1 in list slice at - line 6.
422 Use of uninitialized value $m1 in hash slice at - line 7.
423 Use of uninitialized value $g1 in hash slice at - line 7.
425 use warnings 'uninitialized';
426 my ($m1, @ma, %mh, $v);
429 $v = exists $ma[$m1];
430 $v = exists $ga[$g1];
431 $v = exists $mh{$m1};
432 $v = exists $gh{$g1};
434 Use of uninitialized value $m1 in exists at - line 5.
435 Use of uninitialized value $g1 in exists at - line 6.
436 Use of uninitialized value $m1 in exists at - line 7.
437 Use of uninitialized value $g1 in exists at - line 8.
439 use warnings 'uninitialized';
447 Use of uninitialized value $m1 in left bitshift (<<) at - line 6.
448 Use of uninitialized value $x1 in left bitshift (<<) at - line 6.
449 Use of uninitialized value $g1 in left bitshift (<<) at - line 7.
450 Use of uninitialized value $x2 in left bitshift (<<) at - line 7.
452 use warnings 'uninitialized';
460 eval {$v = $m1 / $g1};
462 eval {$v = $m1 % $g1};
473 Use of uninitialized value $g1 in integer addition (+) at - line 6.
474 Use of uninitialized value $m1 in integer addition (+) at - line 6.
475 Use of uninitialized value $g1 in integer subtraction (-) at - line 7.
476 Use of uninitialized value $m1 in integer subtraction (-) at - line 7.
477 Use of uninitialized value $g1 in integer multiplication (*) at - line 8.
478 Use of uninitialized value $m1 in integer multiplication (*) at - line 8.
479 Use of uninitialized value $g1 in integer division (/) at - line 9.
480 Use of uninitialized value $m2 in integer division (/) at - line 10.
481 Use of uninitialized value $g1 in integer modulus (%) at - line 11.
482 Use of uninitialized value $m1 in integer modulus (%) at - line 11.
483 Use of uninitialized value $m2 in integer modulus (%) at - line 12.
484 Use of uninitialized value $g1 in integer lt (<) at - line 13.
485 Use of uninitialized value $m1 in integer lt (<) at - line 13.
486 Use of uninitialized value $g1 in integer gt (>) at - line 14.
487 Use of uninitialized value $m1 in integer gt (>) at - line 14.
488 Use of uninitialized value $g1 in integer le (<=) at - line 15.
489 Use of uninitialized value $m1 in integer le (<=) at - line 15.
490 Use of uninitialized value $g1 in integer ge (>=) at - line 16.
491 Use of uninitialized value $m1 in integer ge (>=) at - line 16.
492 Use of uninitialized value $g1 in integer eq (==) at - line 17.
493 Use of uninitialized value $m1 in integer eq (==) at - line 17.
494 Use of uninitialized value $g1 in integer ne (!=) at - line 18.
495 Use of uninitialized value $m1 in integer ne (!=) at - line 18.
496 Use of uninitialized value $g1 in integer comparison (<=>) at - line 19.
497 Use of uninitialized value $m1 in integer comparison (<=>) at - line 19.
498 Use of uninitialized value $m1 in integer negation (-) at - line 20.
500 use warnings 'uninitialized';
507 Use of uninitialized value $g1 in int at - line 5.
508 Use of uninitialized value $g1 in int at - line 5.
509 Use of uninitialized value $g2 in abs at - line 6.
510 Use of uninitialized value $g2 in abs at - line 6.
512 use warnings 'uninitialized';
517 $v = pack "i*", $m2, $g1, $g2;
518 my @unpack = unpack $m1, $m2;
520 Use of uninitialized value $m1 in pack at - line 5.
521 Use of uninitialized value $m2 in pack at - line 6.
522 Use of uninitialized value $g1 in pack at - line 6.
523 Use of uninitialized value $g2 in pack at - line 6.
524 Use of uninitialized value $m1 in unpack at - line 7.
525 Use of uninitialized value $m2 in unpack at - line 7.
527 use warnings 'uninitialized';
532 @sort = sort $m1, $g1;
533 @sort = sort {$a <=> $b} $m1, $g1;
534 sub sortf {$a-1 <=> $b-1};
535 @sort = sort &sortf, $m1, $g1;
537 Use of uninitialized value $m1 in sort at - line 6.
538 Use of uninitialized value $g1 in sort at - line 6.
539 Use of uninitialized value $m1 in sort at - line 6.
540 Use of uninitialized value $g1 in sort at - line 6.
541 Use of uninitialized value $m1 in sort at - line 7.
542 Use of uninitialized value $g1 in sort at - line 7.
543 Use of uninitialized value $m1 in sort at - line 7.
544 Use of uninitialized value $g1 in sort at - line 7.
545 Use of uninitialized value $a in subtraction (-) at - line 8.
546 Use of uninitialized value $b in subtraction (-) at - line 8.
547 Use of uninitialized value $m1 in sort at - line 9.
548 Use of uninitialized value $g1 in sort at - line 9.
549 Use of uninitialized value $m1 in sort at - line 9.
550 Use of uninitialized value $m1 in sort at - line 9.
551 Use of uninitialized value $g1 in sort at - line 9.
552 Use of uninitialized value $g1 in sort at - line 9.
554 use warnings 'uninitialized';
558 eval { $v = $m1 / $g1 };
560 eval { $v = $m1 % $g1 };
575 Use of uninitialized value $g1 in division (/) at - line 5.
576 Use of uninitialized value $m1 in division (/) at - line 5.
577 Use of uninitialized value $m2 in division (/) at - line 6.
578 Use of uninitialized value $g1 in modulus (%) at - line 7.
579 Use of uninitialized value $m1 in modulus (%) at - line 7.
580 Use of uninitialized value $m2 in modulus (%) at - line 8.
581 Use of uninitialized value $g1 in numeric eq (==) at - line 9.
582 Use of uninitialized value $m1 in numeric eq (==) at - line 9.
583 Use of uninitialized value $g1 in numeric ge (>=) at - line 10.
584 Use of uninitialized value $m1 in numeric ge (>=) at - line 10.
585 Use of uninitialized value $g1 in numeric gt (>) at - line 11.
586 Use of uninitialized value $m1 in numeric gt (>) at - line 11.
587 Use of uninitialized value $g1 in numeric le (<=) at - line 12.
588 Use of uninitialized value $m1 in numeric le (<=) at - line 12.
589 Use of uninitialized value $g1 in numeric lt (<) at - line 13.
590 Use of uninitialized value $m1 in numeric lt (<) at - line 13.
591 Use of uninitialized value $g1 in multiplication (*) at - line 14.
592 Use of uninitialized value $m1 in multiplication (*) at - line 14.
593 Use of uninitialized value $g1 in numeric comparison (<=>) at - line 15.
594 Use of uninitialized value $m1 in numeric comparison (<=>) at - line 15.
595 Use of uninitialized value $g1 in numeric ne (!=) at - line 16.
596 Use of uninitialized value $m1 in numeric ne (!=) at - line 16.
597 Use of uninitialized value $g1 in subtraction (-) at - line 17.
598 Use of uninitialized value $m1 in subtraction (-) at - line 17.
599 Use of uninitialized value $g1 in exponentiation (**) at - line 18.
600 Use of uninitialized value $m1 in exponentiation (**) at - line 18.
601 Use of uninitialized value $g1 in addition (+) at - line 19.
602 Use of uninitialized value $m1 in addition (+) at - line 19.
603 Use of uninitialized value $g1 in subtraction (-) at - line 20.
604 Use of uninitialized value $m1 in subtraction (-) at - line 20.
606 use warnings 'uninitialized';
617 Use of uninitialized value $m1 in glob elem at - line 5.
618 Use of uninitialized value $g1 in subroutine prototype at - line 6.
619 Use of uninitialized value $g1 in bless at - line 7.
620 Use of uninitialized value $m1 in quoted execution (``, qx) at - line 8.
621 Use of uninitialized value $g1 in concatenation (.) or string at - line 10.
622 Use of uninitialized value $m1 in concatenation (.) or string at - line 10.
624 use warnings 'uninitialized';
635 s/$m1/$g1/; undef $_;
645 s/$m1/$g1/; undef $_;
651 $g2 =~ s/y/z/; undef $g2;
652 $g2 =~ s/$m1/z/; undef $g2;
653 $g2 =~ s//$g1/; undef $g2;
654 $g2 =~ s/$m1/$g1/; undef $g2;
655 $g2 =~ tr/x/y/; undef $g2; # XXX can't extract var name yet
666 Use of uninitialized value $_ in pattern match (m//) at - line 5.
667 Use of uninitialized value $m1 in regexp compilation at - line 6.
668 Use of uninitialized value $_ in pattern match (m//) at - line 6.
669 Use of uninitialized value $g1 in regexp compilation at - line 7.
670 Use of uninitialized value $_ in pattern match (m//) at - line 7.
671 Use of uninitialized value $_ in substitution (s///) at - line 9.
672 Use of uninitialized value $m1 in regexp compilation at - line 10.
673 Use of uninitialized value $_ in substitution (s///) at - line 10.
674 Use of uninitialized value $_ in substitution (s///) at - line 10.
675 Use of uninitialized value $_ in substitution (s///) at - line 11.
676 Use of uninitialized value $g1 in substitution (s///) at - line 11.
677 Use of uninitialized value $_ in substitution (s///) at - line 11.
678 Use of uninitialized value $g1 in substitution (s///) at - line 11.
679 Use of uninitialized value $m1 in regexp compilation at - line 12.
680 Use of uninitialized value $_ in substitution (s///) at - line 12.
681 Use of uninitialized value $_ in substitution (s///) at - line 12.
682 Use of uninitialized value $g1 in substitution iterator at - line 12.
683 Use of uninitialized value $_ in transliteration (tr///) at - line 13.
684 Use of uninitialized value $_ in pattern match (m//) at - line 16.
685 Use of uninitialized value $m1 in regexp compilation at - line 17.
686 Use of uninitialized value $_ in pattern match (m//) at - line 17.
687 Use of uninitialized value $g1 in regexp compilation at - line 18.
688 Use of uninitialized value $_ in pattern match (m//) at - line 18.
689 Use of uninitialized value $_ in substitution (s///) at - line 19.
690 Use of uninitialized value $m1 in regexp compilation at - line 20.
691 Use of uninitialized value $_ in substitution (s///) at - line 20.
692 Use of uninitialized value $_ in substitution (s///) at - line 20.
693 Use of uninitialized value $_ in substitution (s///) at - line 21.
694 Use of uninitialized value $g1 in substitution (s///) at - line 21.
695 Use of uninitialized value $_ in substitution (s///) at - line 21.
696 Use of uninitialized value $g1 in substitution (s///) at - line 21.
697 Use of uninitialized value $m1 in regexp compilation at - line 22.
698 Use of uninitialized value $_ in substitution (s///) at - line 22.
699 Use of uninitialized value $_ in substitution (s///) at - line 22.
700 Use of uninitialized value $g1 in substitution iterator at - line 22.
701 Use of uninitialized value $_ in transliteration (tr///) at - line 23.
702 Use of uninitialized value $g2 in pattern match (m//) at - line 25.
703 Use of uninitialized value $m1 in regexp compilation at - line 26.
704 Use of uninitialized value $g2 in pattern match (m//) at - line 26.
705 Use of uninitialized value $g1 in regexp compilation at - line 27.
706 Use of uninitialized value $g2 in pattern match (m//) at - line 27.
707 Use of uninitialized value $g2 in substitution (s///) at - line 28.
708 Use of uninitialized value $m1 in regexp compilation at - line 29.
709 Use of uninitialized value $g2 in substitution (s///) at - line 29.
710 Use of uninitialized value $g2 in substitution (s///) at - line 29.
711 Use of uninitialized value $g2 in substitution (s///) at - line 30.
712 Use of uninitialized value $g1 in substitution (s///) at - line 30.
713 Use of uninitialized value $g2 in substitution (s///) at - line 30.
714 Use of uninitialized value $g1 in substitution (s///) at - line 30.
715 Use of uninitialized value $m1 in regexp compilation at - line 31.
716 Use of uninitialized value $g2 in substitution (s///) at - line 31.
717 Use of uninitialized value $g2 in substitution (s///) at - line 31.
718 Use of uninitialized value $g1 in substitution iterator at - line 31.
719 Use of uninitialized value in transliteration (tr///) at - line 32.
720 Use of uninitialized value $m1 in regexp compilation at - line 35.
721 Use of uninitialized value $g1 in regexp compilation at - line 36.
722 Use of uninitialized value $m1 in regexp compilation at - line 38.
723 Use of uninitialized value $g1 in substitution (s///) at - line 39.
724 Use of uninitialized value $m1 in regexp compilation at - line 40.
725 Use of uninitialized value $g1 in substitution iterator at - line 40.
726 Use of uninitialized value $m1 in substitution iterator at - line 41.
728 use warnings 'uninitialized';
731 { my $foo = "abc"; (substr($foo,0,0)) = ($m1) }
733 Use of uninitialized value $m1 in list assignment at - line 4.
735 use warnings 'uninitialized';
741 Use of uninitialized value $_ in study at - line 4.
742 Use of uninitialized value $g1 in study at - line 5.
744 use warnings 'uninitialized';
750 Use of uninitialized value $_ in scalar assignment at - line 4.
751 Use of uninitialized value $m1 in scalar assignment at - line 5.
753 use warnings 'uninitialized';
756 { my $x = "a" x $m1 } # NB LHS of repeat does not warn
757 { my @x = ("a") x $m1 }
759 Use of uninitialized value $m1 in repeat (x) at - line 4.
760 Use of uninitialized value $m1 in repeat (x) at - line 5.
762 use warnings 'uninitialized';
776 Use of uninitialized value $m1 in string at - line 5.
777 Use of uninitialized value $m1 in string lt at - line 7.
778 Use of uninitialized value $g1 in string lt at - line 7.
779 Use of uninitialized value $m1 in string le at - line 8.
780 Use of uninitialized value $g1 in string le at - line 8.
781 Use of uninitialized value $m1 in string gt at - line 9.
782 Use of uninitialized value $g1 in string gt at - line 9.
783 Use of uninitialized value $m1 in string ge at - line 10.
784 Use of uninitialized value $g1 in string ge at - line 10.
785 Use of uninitialized value $m1 in string eq at - line 11.
786 Use of uninitialized value $g1 in string eq at - line 11.
787 Use of uninitialized value $m1 in string ne at - line 12.
788 Use of uninitialized value $g1 in string ne at - line 12.
789 Use of uninitialized value $m1 in string comparison (cmp) at - line 13.
790 Use of uninitialized value $g1 in string comparison (cmp) at - line 13.
792 use warnings 'uninitialized';
809 Use of uninitialized value $g1 in atan2 at - line 5.
810 Use of uninitialized value $m1 in atan2 at - line 5.
811 Use of uninitialized value $m1 in sin at - line 6.
812 Use of uninitialized value $m1 in cos at - line 7.
813 Use of uninitialized value $m1 in rand at - line 8.
814 Use of uninitialized value $m1 in srand at - line 9.
815 Use of uninitialized value $m1 in exp at - line 10.
816 Use of uninitialized value $m1 in log at - line 11.
817 Use of uninitialized value $m1 in sqrt at - line 12.
818 Use of uninitialized value $m1 in hex at - line 13.
819 Use of uninitialized value $m1 in oct at - line 14.
820 Use of uninitialized value $m1 in length at - line 15.
821 Use of uninitialized value $_ in length at - line 16.
823 use warnings 'uninitialized';
827 $v = substr $m1, $g1;
828 $v = substr $m1, $g1, $m2;
829 $v = substr $m1, $g1, $m2, $g2; undef $m1;
830 substr($m1, $g1) = $g2; undef $m1; # NB global2
831 substr($m1, $g1, $m2) = $g2; undef $m1; # isn't identified
833 $v = eval {vec ($m1, $g1, $m2)};
834 eval {vec ($m1, $g1, $m2) = $g2}; undef $m1; # ditto
837 $v = index $m1, $m2, $g1;
838 $v = rindex $m1, $m2;
839 $v = rindex $m1, $m2, $g1;
841 Use of uninitialized value $g1 in substr at - line 5.
842 Use of uninitialized value $m1 in substr at - line 5.
843 Use of uninitialized value $m2 in substr at - line 6.
844 Use of uninitialized value $g1 in substr at - line 6.
845 Use of uninitialized value $m1 in substr at - line 6.
846 Use of uninitialized value $g2 in substr at - line 7.
847 Use of uninitialized value $m2 in substr at - line 7.
848 Use of uninitialized value $g1 in substr at - line 7.
849 Use of uninitialized value $m1 in substr at - line 7.
850 Use of uninitialized value $m1 in substr at - line 7.
851 Use of uninitialized value $g1 in substr at - line 8.
852 Use of uninitialized value $m1 in substr at - line 8.
853 Use of uninitialized value in scalar assignment at - line 8.
854 Use of uninitialized value $m2 in substr at - line 9.
855 Use of uninitialized value $g1 in substr at - line 9.
856 Use of uninitialized value $m1 in substr at - line 9.
857 Use of uninitialized value in scalar assignment at - line 9.
858 Use of uninitialized value $m2 in vec at - line 11.
859 Use of uninitialized value $g1 in vec at - line 11.
860 Use of uninitialized value $m1 in vec at - line 11.
861 Use of uninitialized value $m2 in vec at - line 12.
862 Use of uninitialized value $g1 in vec at - line 12.
863 Use of uninitialized value $m1 in vec at - line 12.
864 Use of uninitialized value $m1 in index at - line 14.
865 Use of uninitialized value $m2 in index at - line 14.
866 Use of uninitialized value $g1 in index at - line 15.
867 Use of uninitialized value $m1 in index at - line 15.
868 Use of uninitialized value $m2 in index at - line 15.
869 Use of uninitialized value $m2 in rindex at - line 16.
870 Use of uninitialized value $m1 in rindex at - line 16.
871 Use of uninitialized value $g1 in rindex at - line 17.
872 Use of uninitialized value $m2 in rindex at - line 17.
873 Use of uninitialized value $m1 in rindex at - line 17.
875 use warnings 'uninitialized';
880 $v = sprintf '%d%d%d%d', $m1, $m2, $g1, $g2;
881 eval {formline $m1 }; undef $m1;
882 formline '@<<@<<@<<@<<', $m1, $m2, $g1, $g2;
884 Use of uninitialized value $m1 in sprintf at - line 5.
885 Use of uninitialized value $m1 in sprintf at - line 6.
886 Use of uninitialized value $m2 in sprintf at - line 6.
887 Use of uninitialized value $g1 in sprintf at - line 6.
888 Use of uninitialized value $g2 in sprintf at - line 6.
889 Use of uninitialized value $m1 in formline at - line 7.
890 Use of uninitialized value $m1 in formline at - line 8.
891 Use of uninitialized value $m2 in formline at - line 8.
892 Use of uninitialized value $g1 in formline at - line 8.
893 Use of uninitialized value $g2 in formline at - line 8.
895 use warnings 'uninitialized';
906 # XXX these functions don't warn!
919 Use of uninitialized value $m1 in crypt at - line 5.
920 Use of uninitialized value $g1 in crypt at - line 5.
921 Use of uninitialized value $_ in ord at - line 7.
922 Use of uninitialized value $m1 in ord at - line 8.
923 Use of uninitialized value $_ in chr at - line 9.
924 Use of uninitialized value $m1 in chr at - line 10.
925 Use of uninitialized value $_ in quotemeta at - line 22.
926 Use of uninitialized value $m1 in quotemeta at - line 23.
928 use warnings 'uninitialized';
929 my ($m1, $v1, $v2, $v3, $v4);
932 ($v1,$v2,$v3,$v4) = split;
933 ($v1,$v2,$v3,$v4) = split $m1;
934 ($v1,$v2,$v3,$v4) = split $m1, $m2;
935 ($v1,$v2,$v3,$v4) = split $m1, $m2, $g1;
939 $v3 = join $m1, $m2, $m3;
941 Use of uninitialized value $_ in split at - line 5.
942 Use of uninitialized value $m1 in regexp compilation at - line 6.
943 Use of uninitialized value $_ in split at - line 6.
944 Use of uninitialized value $m1 in regexp compilation at - line 7.
945 Use of uninitialized value $m2 in split at - line 7.
946 Use of uninitialized value $m1 in regexp compilation at - line 8.
947 Use of uninitialized value $g1 in split at - line 8.
948 Use of uninitialized value $m2 in split at - line 8.
949 Use of uninitialized value $m1 in join or string at - line 10.
950 Use of uninitialized value $m1 in join or string at - line 11.
951 Use of uninitialized value $m2 in join or string at - line 11.
952 Use of uninitialized value $m1 in join or string at - line 12.
953 Use of uninitialized value $m2 in join or string at - line 12.
954 Use of uninitialized value $m3 in join or string at - line 12.
956 use warnings 'uninitialized';
957 my ($m1, $m2, @ma, $v);
959 our @foo1=(1,undef); chomp @foo1;
960 my @foo2=(1,undef); chomp @foo2;
961 our @foo3=(1,undef); chop @foo3;
962 my @foo4=(1,undef); chop @foo4;
963 our @foo5=(1,undef); $v = sprintf "%s%s",@foo5;
964 my @foo6=(1,undef); $v = sprintf "%s%s",@foo6;
965 our %foo7=('foo'=>'bar','baz'=>undef); $v = sprintf "%s%s",%foo7;
966 my %foo8=('foo'=>'bar','baz'=>undef); $v = sprintf "%s%s",%foo8;
967 our @foo9 =(1,undef); $v = sprintf "%s%s%s%s",$m1,@foo9, $ma[2];
968 my @foo10=(1,undef); $v = sprintf "%s%s%s%s",$m2,@foo10,$ma[2];
969 our %foo11=('foo'=>'bar','baz'=>undef); $v = join '', %foo11;
970 my %foo12=('foo'=>'bar','baz'=>undef); $v = join '', %foo12;
971 our %foo13=(1..2000,'foo'=>'bar','baz'=>undef); $v = join '', %foo13;
972 my %foo14=(1..2000,'foo'=>'bar','baz'=>undef); $v = join '', %foo14;
974 Use of uninitialized value $foo1[1] in chomp at - line 4.
975 Use of uninitialized value $foo2[1] in chomp at - line 5.
976 Use of uninitialized value $foo3[1] in chop at - line 6.
977 Use of uninitialized value $foo4[1] in chop at - line 7.
978 Use of uninitialized value $foo5[1] in sprintf at - line 8.
979 Use of uninitialized value $foo6[1] in sprintf at - line 9.
980 Use of uninitialized value $foo7{"baz"} in sprintf at - line 10.
981 Use of uninitialized value $foo8{"baz"} in sprintf at - line 11.
982 Use of uninitialized value $m1 in sprintf at - line 12.
983 Use of uninitialized value $foo9[1] in sprintf at - line 12.
984 Use of uninitialized value in sprintf at - line 12.
985 Use of uninitialized value $m2 in sprintf at - line 13.
986 Use of uninitialized value $foo10[1] in sprintf at - line 13.
987 Use of uninitialized value in sprintf at - line 13.
988 Use of uninitialized value $foo11{"baz"} in join or string at - line 14.
989 Use of uninitialized value $foo12{"baz"} in join or string at - line 15.
990 Use of uninitialized value within %foo13 in join or string at - line 16.
991 Use of uninitialized value within %foo14 in join or string at - line 17.
993 use warnings 'uninitialized';
996 undef $^A; $v = $^A + ${^FOO}; # should output '^A' not chr(1)
1001 Use of uninitialized value $^FOO in addition (+) at - line 4.
1002 Use of uninitialized value $^A in addition (+) at - line 4.
1003 Use of uninitialized value $GLOB1 in addition (+) at - line 6.
1004 Use of uninitialized value $GLOB2 in addition (+) at - line 7.
1006 use warnings 'uninitialized';
1009 # check hash key is sanitised
1010 my %h = ("\0011\002\r\n\t\f\"\\abcdefghijklmnopqrstuvwxyz", undef);
1013 Use of uninitialized value $h{"\0011\2\r\n\t\f\"\\abcdefghijkl"...} in join or string at - line 6.
1015 use warnings 'uninitialized';
1019 $v = eval { \&$m1 };
1020 $v = eval { \&$g1 };
1023 @a = splice @a, $m1, $g1;
1024 $v = 1 + splice @a, $m1, $g1;
1026 my $x = bless [], 'Z';
1034 eval { die $m1, $g1 };
1039 Use of uninitialized value $m1 in subroutine dereference at - line 5.
1040 Use of uninitialized value $m1 in subroutine dereference at - line 5.
1041 Use of uninitialized value $g1 in subroutine dereference at - line 6.
1042 Use of uninitialized value $g1 in subroutine dereference at - line 6.
1043 Use of uninitialized value $m1 in splice at - line 9.
1044 Use of uninitialized value $g1 in splice at - line 9.
1045 Use of uninitialized value $m1 in splice at - line 10.
1046 Use of uninitialized value $g1 in splice at - line 10.
1047 Use of uninitialized value in addition (+) at - line 10.
1048 Use of uninitialized value $m1 in method lookup at - line 13.
1049 Use of uninitialized value $m1 in subroutine entry at - line 15.
1050 Use of uninitialized value $g1 in subroutine entry at - line 16.
1051 Use of uninitialized value $m1 in warn at - line 18.
1052 Use of uninitialized value $g1 in warn at - line 18.
1054 Use of uninitialized value $m1 in die at - line 20.
1055 Use of uninitialized value $g1 in die at - line 20.
1056 Use of uninitialized value $m1 in symbol reset at - line 22.
1057 Use of uninitialized value $g1 in symbol reset at - line 23.
1059 use warnings 'uninitialized';
1063 open FOO; # accesses $FOO
1065 open($foo."O"); # accesses $FOO
1066 open my $x; # accesses ${*$x}
1067 open $foobar; # accesses ${*$foobar}
1070 eval { open $y, $m1, $g1 };
1073 sysopen $y, $m1, $m2;
1074 sysopen $y, $m1, $g1, $m2;
1083 Use of uninitialized value $FOO in open at - line 5.
1084 Use of uninitialized value in open at - line 7.
1085 Use of uninitialized value in open at - line 8.
1086 Use of uninitialized value in open at - line 9.
1087 Use of uninitialized value $m1 in open at - line 11.
1088 Use of uninitialized value $m1 in open at - line 12.
1089 Use of uninitialized value $g1 in open at - line 13.
1090 Use of uninitialized value $m2 in sysopen at - line 15.
1091 Use of uninitialized value $m1 in sysopen at - line 15.
1092 Use of uninitialized value $m2 in sysopen at - line 16.
1093 Use of uninitialized value $g1 in sysopen at - line 16.
1094 Use of uninitialized value $m1 in sysopen at - line 16.
1095 Use of uninitialized value $m1 in umask at - line 19.
1096 Use of uninitialized value $g1 in umask at - line 20.
1097 Use of uninitialized value $m1 in binmode at - line 23.
1098 Use of uninitialized value $m1 in binmode at - line 23.
1100 use warnings 'uninitialized';
1104 eval { my $x; tie $x, $m1 };
1106 eval { my $x; read $m1, $x, $g1 };
1107 eval { my $x; read $m1, $x, $g1, $g2 };
1108 eval { my $x; sysread $m1, $x, $g1 };
1109 eval { my $x; sysread $m1, $x, $g1, $g2 };
1111 Use of uninitialized value $m1 in tie at - line 5.
1112 Use of uninitialized value $m1 in tie at - line 5.
1113 Use of uninitialized value $m1 in ref-to-glob cast at - line 7.
1114 Use of uninitialized value $g1 in read at - line 7.
1115 Use of uninitialized value $m1 in ref-to-glob cast at - line 8.
1116 Use of uninitialized value $g1 in read at - line 8.
1117 Use of uninitialized value $g2 in read at - line 8.
1118 Use of uninitialized value $m1 in ref-to-glob cast at - line 9.
1119 Use of uninitialized value $g1 in sysread at - line 9.
1120 Use of uninitialized value $m1 in ref-to-glob cast at - line 10.
1121 Use of uninitialized value $g1 in sysread at - line 10.
1122 Use of uninitialized value $g2 in sysread at - line 10.
1124 use warnings 'uninitialized';
1129 printf STDERR "%d%d%d%d\n", $m1, $m2, $g1, $g2;
1131 printf STDERR "FOO1:%s\n", $ga[1000];
1132 printf STDERR "FOO2:%s%s%s%s\n", $m1, $g1, $ga[1],$m2;
1133 printf STDERR "FOO3:%s%s%s\n", "X", $ga[1],"Y";
1135 Use of uninitialized value $m1 in printf at - line 5.
1136 Use of uninitialized value $m1 in printf at - line 6.
1137 Use of uninitialized value $m2 in printf at - line 6.
1138 Use of uninitialized value $g1 in printf at - line 6.
1139 Use of uninitialized value $g2 in printf at - line 6.
1141 Use of uninitialized value $ga[1000] in printf at - line 7.
1142 Use of uninitialized value $ga[1000] in printf at - line 8.
1144 Use of uninitialized value $m1 in printf at - line 9.
1145 Use of uninitialized value $g1 in printf at - line 9.
1146 Use of uninitialized value in printf at - line 9.
1147 Use of uninitialized value $m2 in printf at - line 9.
1149 Use of uninitialized value $ga[1] in printf at - line 10.
1152 use warnings 'uninitialized';
1156 eval { my $x; seek $x,$m1, $g1 };
1157 eval { my $x; sysseek $x,$m1, $g1 };
1158 eval { syswrite $m1, $g1 };
1159 eval { syswrite STDERR, $m1 };
1160 eval { syswrite STDERR, $m1, $g1 };
1161 eval { syswrite STDERR, $m1, $g1, $m2 };
1162 eval { my $x; flock $x, $g1 };
1163 eval { my $x; socket $x, $m1, $g1, $m2 };
1164 eval { my ($x,$y); socketpair $x, $y, $m1, $g1, $m2 };
1166 Use of uninitialized value $x in ref-to-glob cast at - line 5.
1167 Use of uninitialized value $g1 in seek at - line 5.
1168 Use of uninitialized value $m1 in seek at - line 5.
1169 Use of uninitialized value $x in ref-to-glob cast at - line 6.
1170 Use of uninitialized value $g1 in sysseek at - line 6.
1171 Use of uninitialized value $m1 in sysseek at - line 6.
1172 Use of uninitialized value $m1 in ref-to-glob cast at - line 7.
1173 Use of uninitialized value $g1 in syswrite at - line 7.
1174 Use of uninitialized value $m1 in syswrite at - line 8.
1175 Use of uninitialized value $m1 in syswrite at - line 8.
1176 Use of uninitialized value $g1 in syswrite at - line 9.
1177 Use of uninitialized value $m1 in syswrite at - line 9.
1178 Use of uninitialized value $g1 in syswrite at - line 10.
1179 Use of uninitialized value $m1 in syswrite at - line 10.
1180 Use of uninitialized value $m2 in syswrite at - line 10.
1181 Use of uninitialized value $x in ref-to-glob cast at - line 11.
1182 Use of uninitialized value $g1 in flock at - line 11.
1183 Use of uninitialized value $m2 in socket at - line 12.
1184 Use of uninitialized value $g1 in socket at - line 12.
1185 Use of uninitialized value $m1 in socket at - line 12.
1186 Use of uninitialized value $m2 in socketpair at - line 13.
1187 Use of uninitialized value $g1 in socketpair at - line 13.
1188 Use of uninitialized value $m1 in socketpair at - line 13.
1190 use warnings 'uninitialized';
1227 Use of uninitialized value $_ in stat at - line 5.
1228 Use of uninitialized value $_ in lstat at - line 6.
1229 Use of uninitialized value $m1 in stat at - line 7.
1230 Use of uninitialized value $g1 in lstat at - line 8.
1231 Use of uninitialized value $m1 in -R at - line 10.
1232 Use of uninitialized value $m1 in -W at - line 11.
1233 Use of uninitialized value $m1 in -X at - line 12.
1234 Use of uninitialized value $m1 in -r at - line 13.
1235 Use of uninitialized value $m1 in -w at - line 14.
1236 Use of uninitialized value $m1 in -x at - line 15.
1237 Use of uninitialized value $m1 in -e at - line 16.
1238 Use of uninitialized value $m1 in -o at - line 17.
1239 Use of uninitialized value $m1 in -O at - line 18.
1240 Use of uninitialized value $m1 in -z at - line 19.
1241 Use of uninitialized value $m1 in -s at - line 20.
1242 Use of uninitialized value $m1 in -M at - line 21.
1243 Use of uninitialized value $m1 in -A at - line 22.
1244 Use of uninitialized value $m1 in -C at - line 23.
1245 Use of uninitialized value $m1 in -S at - line 24.
1246 Use of uninitialized value $m1 in -c at - line 25.
1247 Use of uninitialized value $m1 in -b at - line 26.
1248 Use of uninitialized value $m1 in -f at - line 27.
1249 Use of uninitialized value $m1 in -d at - line 28.
1250 Use of uninitialized value $m1 in -p at - line 29.
1251 Use of uninitialized value $m1 in -l at - line 30.
1252 Use of uninitialized value $m1 in -l at - line 30.
1253 Use of uninitialized value $m1 in -u at - line 31.
1254 Use of uninitialized value $m1 in -g at - line 32.
1255 Use of uninitialized value $m1 in -k at - line 33.
1256 Use of uninitialized value $m1 in -t at - line 34.
1257 Use of uninitialized value $m1 in -T at - line 35.
1258 Use of uninitialized value $m1 in -B at - line 36.
1260 use warnings 'uninitialized';
1267 Use of uninitialized value $m1 in localtime at - line 5.
1268 Use of uninitialized value $g1 in gmtime at - line 6.
1270 use warnings 'uninitialized';
1276 Use of uninitialized value $_ in eval "string" at - line 4.
1277 Use of uninitialized value $_ in eval "string" at - line 4.
1278 Use of uninitialized value $_ in eval "string" at - line 4.
1279 Use of uninitialized value $m1 in eval "string" at - line 5.
1280 Use of uninitialized value $m1 in eval "string" at - line 5.
1281 Use of uninitialized value $m1 in eval "string" at - line 5.
1283 use warnings 'uninitialized';
1288 Use of uninitialized value $m1 in exit at - line 4.