9uninit

来自「source of perl for linux application,」· 代码 · 共 1,316 行 · 第 1/4 页

TXT
1,316
字号
DAPM 4/2004.Test the appearance of variable names in "Use of uninitialized value"warnings.The following ops aren't tested, mainly because they do IO or non-portablestuff:    send recv bind conect listen accept shutdown chdir chown chroot unlink    chmod utime rename link symlink readlink mkdir rmdir opendir seekdir    system exec kill getpgrp alarm sleep dofile require gethostbyname    gethostbyaddr getnetbyname getnetbyaddr getprotobyname getprotobynumber    getservbyname getservbyport sethostent setnetent setprotoent setservent    getpwnam getpwuid getgrnam getgrgid waitpid setpgrp setpriority    getpriority syscall dbmopen ioctl fcntl truncate getsockopt setsockopt    semctl semop semget msgget msgctl msgsnd msgrcv shmget shmctl shmread    shmwrite    ---------------------------------------------------__END__use warnings 'uninitialized';my ($m1, $m2, $v);$v = $m1 + 10;$v = 22 + $m2;$v = $m1 + $m2;EXPECTUse of uninitialized value $m1 in addition (+) at - line 4.Use of uninitialized value $m2 in addition (+) at - line 5.Use of uninitialized value $m2 in addition (+) at - line 6.Use of uninitialized value $m1 in addition (+) at - line 6.########use warnings 'uninitialized';my ($m1, $v);our ($g1, $g2);$v = $g1 + 21;$v = 31 + $g2;$v = $g1 + $g2;$v = $m1 + $g2;EXPECTUse of uninitialized value $g1 in addition (+) at - line 5.Use of uninitialized value $g2 in addition (+) at - line 6.Use of uninitialized value $g2 in addition (+) at - line 7.Use of uninitialized value $g1 in addition (+) at - line 7.Use of uninitialized value $g2 in addition (+) at - line 8.Use of uninitialized value $m1 in addition (+) at - line 8.########use warnings 'uninitialized';my ($m1, @ma, $v);$v = $ma[5] + 45;$v = 56 + $ma[6];$v = $ma[7] + $m1;$v = $ma[8] + $ma[9];$v = $ma[-1] + $ma[-2];EXPECTUse of uninitialized value $ma[5] in addition (+) at - line 4.Use of uninitialized value $ma[6] in addition (+) at - line 5.Use of uninitialized value $m1 in addition (+) at - line 6.Use of uninitialized value in addition (+) at - line 6.Use of uninitialized value in addition (+) at - line 7.Use of uninitialized value in addition (+) at - line 7.Use of uninitialized value in addition (+) at - line 8.Use of uninitialized value in addition (+) at - line 8.########use warnings 'uninitialized';my ($v);my @mau = (undef) x 258;my %mhu = ('foo', undef, 'bar', undef);$v = $mau[5] + 23;$v = $mau[-5] + 45;$v = 56 + $mau[6];$v = 78 + $mau[-6];$v = $mau[7] + $mau[8];$v = $mau[256] + $mau[257];$v = $mau[-1] + $mau[-2];$v = $mhu{foo} + $mhu{bar};EXPECTUse of uninitialized value $mau[5] in addition (+) at - line 6.Use of uninitialized value $mau[-5] in addition (+) at - line 7.Use of uninitialized value $mau[6] in addition (+) at - line 8.Use of uninitialized value $mau[-6] in addition (+) at - line 9.Use of uninitialized value $mau[8] in addition (+) at - line 10.Use of uninitialized value $mau[7] in addition (+) at - line 10.Use of uninitialized value $mau[257] in addition (+) at - line 11.Use of uninitialized value $mau[256] in addition (+) at - line 11.Use of uninitialized value $mau[-2] in addition (+) at - line 12.Use of uninitialized value $mau[-1] in addition (+) at - line 12.Use of uninitialized value $mhu{"bar"} in addition (+) at - line 13.Use of uninitialized value $mhu{"foo"} in addition (+) at - line 13.########use warnings 'uninitialized';my ($v);our (@ga);$v = $ga[8] + 21;$v = $ga[-8] + 46;$v = 57 + $ga[9];$v = 58 + $ga[-9];$v = $ga[10] + $ga[11];$v = $ga[-10] + $ga[-11];EXPECTUse of uninitialized value $ga[8] in addition (+) at - line 5.Use of uninitialized value $ga[-8] in addition (+) at - line 6.Use of uninitialized value $ga[9] in addition (+) at - line 7.Use of uninitialized value $ga[-9] in addition (+) at - line 8.Use of uninitialized value in addition (+) at - line 9.Use of uninitialized value in addition (+) at - line 9.Use of uninitialized value in addition (+) at - line 10.Use of uninitialized value in addition (+) at - line 10.########use warnings 'uninitialized';my ($v);our @gau = (undef) x 258;our %ghu = ('foo', undef, 'bar', undef);$v = $gau[8] + 46;$v = $gau[-8] + 47;$v = 57 + $gau[9];$v = 57 + $gau[-9];$v = $gau[10] + $gau[11];$v = $gau[256] + $gau[257];$v = $gau[-1] + $gau[-2];$v = $ghu{foo} + $ghu{bar};EXPECTUse of uninitialized value $gau[8] in addition (+) at - line 6.Use of uninitialized value $gau[-8] in addition (+) at - line 7.Use of uninitialized value $gau[9] in addition (+) at - line 8.Use of uninitialized value $gau[-9] in addition (+) at - line 9.Use of uninitialized value $gau[11] in addition (+) at - line 10.Use of uninitialized value $gau[10] in addition (+) at - line 10.Use of uninitialized value $gau[257] in addition (+) at - line 11.Use of uninitialized value $gau[256] in addition (+) at - line 11.Use of uninitialized value $gau[-2] in addition (+) at - line 12.Use of uninitialized value $gau[-1] in addition (+) at - line 12.Use of uninitialized value $ghu{"bar"} in addition (+) at - line 13.Use of uninitialized value $ghu{"foo"} in addition (+) at - line 13.########use warnings 'uninitialized';my ($v);our @gau = (undef) x 258;our %ghu = ('foo', undef, 'bar', undef);my @mau = (undef) x 258;my %mhu = ('foo', undef, 'bar', undef);my $i1 = 10;my $i2 = 20;my $i3 = 2000;my $k1 = 'foo';my $k2 = 'bar';my $k3 = 'baz';$v = $mau[$i1] + $mau[$i2];$v = $gau[$i1] + $gau[$i2];$v = $gau[$i1] + $gau[$i3];$v = $mhu{$k1} + $mhu{$k2};$v = $ghu{$k1} + $ghu{$k2};$v = $ghu{$k1} + $ghu{$k3};EXPECTUse of uninitialized value $mau[20] in addition (+) at - line 14.Use of uninitialized value $mau[10] in addition (+) at - line 14.Use of uninitialized value $gau[20] in addition (+) at - line 15.Use of uninitialized value $gau[10] in addition (+) at - line 15.Use of uninitialized value in addition (+) at - line 16.Use of uninitialized value $gau[10] in addition (+) at - line 16.Use of uninitialized value $mhu{"bar"} in addition (+) at - line 17.Use of uninitialized value $mhu{"foo"} in addition (+) at - line 17.Use of uninitialized value $ghu{"bar"} in addition (+) at - line 18.Use of uninitialized value $ghu{"foo"} in addition (+) at - line 18.Use of uninitialized value in addition (+) at - line 19.Use of uninitialized value $ghu{"foo"} in addition (+) at - line 19.########use warnings 'uninitialized';my ($m1, $m2, @ma, %mh, $v);our ($g1, $g2, @ga, %gh);$v = $ma[$m1];$v = $ma[$g1];$v = $ga[$m2];$v = $ga[$g2];$v = $mh{$m1};$v = $mh{$g1};$v = $gh{$m2};$v = $gh{$g2};$v = $m1+($m2-$g1);$v = $ma[$ga[3]];$v = $ga[$ma[4]];EXPECTUse of uninitialized value $m1 in array element at - line 5.Use of uninitialized value $g1 in array element at - line 6.Use of uninitialized value $m2 in array element at - line 7.Use of uninitialized value $g2 in array element at - line 8.Use of uninitialized value $m1 in hash element at - line 10.Use of uninitialized value $g1 in hash element at - line 11.Use of uninitialized value $m2 in hash element at - line 12.Use of uninitialized value $g2 in hash element at - line 13.Use of uninitialized value $g1 in subtraction (-) at - line 15.Use of uninitialized value $m2 in subtraction (-) at - line 15.Use of uninitialized value $m1 in addition (+) at - line 15.Use of uninitialized value $ga[3] in array element at - line 16.Use of uninitialized value $ma[4] in array element at - line 17.########use warnings 'uninitialized';my (@ma, %mh, $v);our (@ga, %gh);$v = sin $ga[1000];$v = sin $ma[1000];$v = sin $gh{foo};$v = sin $mh{bar};$v = sin $ga[$$];$v = sin $ma[$$];$v = sin $gh{$$};$v = sin $mh{$$};EXPECTUse of uninitialized value $ga[1000] in sin at - line 5.Use of uninitialized value $ma[1000] in sin at - line 6.Use of uninitialized value $gh{"foo"} in sin at - line 7.Use of uninitialized value $mh{"bar"} in sin at - line 8.Use of uninitialized value within @ga in sin at - line 10.Use of uninitialized value within @ma in sin at - line 11.Use of uninitialized value within %gh in sin at - line 12.Use of uninitialized value within %mh in sin at - line 13.########use warnings 'uninitialized';my (@mat, %mht, $v);sub X::TIEARRAY { bless [], 'X' }sub X::TIEHASH { bless [], 'X' }sub X::FETCH { undef }tie @mat, 'X';tie %mht, 'X';my $key1 = 'akey';my $key2 = 'bkey';my $index1 = 33;my $index2 = 55;$v = sin $mat[0];$v = $mat[0] + $mat[1];$v = sin $mat[1000];$v = $mat[1000] + $mat[1001];$v = sin $mat[$index1];$v = $mat[$index1] + $mat[$index2];$v = sin $mht{foo};$v = $mht{foo} + $mht{bar};$v = sin $mht{$key1};$v = $mht{$key1} + $mht{$key2};$v = $1+1;EXPECTUse of uninitialized value $mat[0] in sin at - line 13.Use of uninitialized value in addition (+) at - line 14.Use of uninitialized value in addition (+) at - line 14.Use of uninitialized value $mat[1000] in sin at - line 15.Use of uninitialized value in addition (+) at - line 16.Use of uninitialized value in addition (+) at - line 16.Use of uninitialized value within @mat in sin at - line 18.Use of uninitialized value in addition (+) at - line 19.Use of uninitialized value in addition (+) at - line 19.Use of uninitialized value $mht{"foo"} in sin at - line 21.Use of uninitialized value in addition (+) at - line 22.Use of uninitialized value in addition (+) at - line 22.Use of uninitialized value within %mht in sin at - line 24.Use of uninitialized value in addition (+) at - line 25.Use of uninitialized value in addition (+) at - line 25.Use of uninitialized value $1 in addition (+) at - line 27.########use warnings 'uninitialized';my ($m1);our ($g1, @ga);print $ga[1000];print STDERR $ga[1000];print STDERR $m1, $g1, $ga[1],$m2;print STDERR "", $ga[1],"";EXPECTUse of uninitialized value $ga[1000] in print at - line 5.Use of uninitialized value $ga[1000] in print at - line 6.Use of uninitialized value $m1 in print at - line 7.Use of uninitialized value $g1 in print at - line 7.Use of uninitialized value in print at - line 7.Use of uninitialized value $m2 in print at - line 7.Use of uninitialized value $ga[1] in print at - line 8.########use warnings 'uninitialized';my ($m1);our ($g1);close $m1;	# exercises rv2gvclose $g1;	# exercises rv2gvEXPECTUse of uninitialized value $m1 in ref-to-glob cast at - line 5.Use of uninitialized value $g1 in ref-to-glob cast at - line 6.########use warnings 'uninitialized';my ($m1, $m2, $v);our ($g1, $g2);$v = $$m1;$v = $$g1;$v = @$m1;$v = @$g1;$v = %$m2;$v = %$g2;$v = ${"foo.bar"}+1;$v = ${"foo$m1"}+1;$v = ${"foo$g1"}+1;EXPECTUse of uninitialized value $m1 in scalar dereference at - line 5.Use of uninitialized value $g1 in scalar dereference at - line 6.Use of uninitialized value $m1 in array dereference at - line 8.Use of uninitialized value $g1 in array dereference at - line 9.Use of uninitialized value $m2 in hash dereference at - line 10.Use of uninitialized value $g2 in hash dereference at - line 11.Use of uninitialized value in addition (+) at - line 13.Use of uninitialized value $m1 in concatenation (.) or string at - line 14.Use of uninitialized value in addition (+) at - line 14.Use of uninitialized value $g1 in concatenation (.) or string at - line 15.Use of uninitialized value in addition (+) at - line 15.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?