1#!./perl -w 2 3# 4# test auto defined() test insertion 5# 6 7BEGIN { 8 chdir 't' if -d 't'; 9 @INC = qw(. ../lib); 10 $SIG{__WARN__} = sub { $warns++; warn $_[0] }; 11} 12require 'test.pl'; 13plan( tests => 19 ); 14 15$wanted_filename = $^O eq 'VMS' ? '0.' : '0'; 16$saved_filename = $^O eq 'MacOS' ? ':0' : './0'; 17 18cmp_ok($warns,'==',0,'no warns at start'); 19 20open(FILE,">$saved_filename"); 21ok(defined(FILE),'created work file'); 22print FILE "1\n"; 23print FILE "0"; 24close(FILE); 25 26open(FILE,"<$saved_filename"); 27ok(defined(FILE),'opened work file'); 28my $seen = 0; 29my $dummy; 30while (my $name = <FILE>) 31 { 32 $seen++ if $name eq '0'; 33 } 34cmp_ok($seen,'==',1,'seen in while()'); 35 36seek(FILE,0,0); 37$seen = 0; 38my $line = ''; 39do 40 { 41 $seen++ if $line eq '0'; 42 } while ($line = <FILE>); 43cmp_ok($seen,'==',1,'seen in do/while'); 44 45seek(FILE,0,0); 46$seen = 0; 47while (($seen ? $dummy : $name) = <FILE> ) 48 { 49 $seen++ if $name eq '0'; 50 } 51cmp_ok($seen,'==',1,'seen in while() ternary'); 52 53seek(FILE,0,0); 54$seen = 0; 55my %where; 56while ($where{$seen} = <FILE>) 57 { 58 $seen++ if $where{$seen} eq '0'; 59 } 60cmp_ok($seen,'==',1,'seen in hash while()'); 61close FILE; 62 63opendir(DIR,($^O eq 'MacOS' ? ':' : '.')); 64ok(defined(DIR),'opened current directory'); 65$seen = 0; 66while (my $name = readdir(DIR)) 67 { 68 $seen++ if $name eq $wanted_filename; 69 } 70cmp_ok($seen,'==',1,'saw work file once'); 71 72rewinddir(DIR); 73$seen = 0; 74$dummy = ''; 75while (($seen ? $dummy : $name) = readdir(DIR)) 76 { 77 $seen++ if $name eq $wanted_filename; 78 } 79cmp_ok($seen,'>',0,'saw file in while() ternary'); 80 81rewinddir(DIR); 82$seen = 0; 83while ($where{$seen} = readdir(DIR)) 84 { 85 $seen++ if $where{$seen} eq $wanted_filename; 86 } 87cmp_ok($seen,'==',1,'saw file in hash while()'); 88 89$seen = 0; 90while (my $name = glob('*')) 91 { 92 $seen++ if $name eq $wanted_filename; 93 } 94cmp_ok($seen,'==',1,'saw file in glob while()'); 95 96$seen = 0; 97$dummy = ''; 98while (($seen ? $dummy : $name) = glob('*')) 99 { 100 $seen++ if $name eq $wanted_filename; 101 } 102cmp_ok($seen,'>',0,'saw file in glob hash while() ternary'); 103 104$seen = 0; 105while ($where{$seen} = glob('*')) 106 { 107 $seen++ if $where{$seen} eq $wanted_filename; 108 } 109cmp_ok($seen,'==',1,'seen in glob hash while()'); 110 111unlink($saved_filename); 112ok(!(-f $saved_filename),'work file unlinked'); 113 114my %hash = (0 => 1, 1 => 2); 115 116$seen = 0; 117while (my $name = each %hash) 118 { 119 $seen++ if $name eq '0'; 120 } 121cmp_ok($seen,'==',1,'seen in each'); 122 123$seen = 0; 124$dummy = ''; 125while (($seen ? $dummy : $name) = each %hash) 126 { 127 $seen++ if $name eq '0'; 128 } 129cmp_ok($seen,'==',1,'seen in each ternary'); 130 131$seen = 0; 132while ($where{$seen} = each %hash) 133 { 134 $seen++ if $where{$seen} eq '0'; 135 } 136cmp_ok($seen,'==',1,'seen in each hash'); 137 138cmp_ok($warns,'==',0,'no warns at finish'); 139