while ($line = <$fh>) {
# ...
}
####
while (defined($line = <$fh>)) {
# ...
}
####
my @a = qw( 1 2 3 4 5 );
while (my ($a, @a) = shift @a) {
printf "Next value = $a\n";
printf "Size of \@a = %d\n", 0 + @a;
}
# When run ... infinite loop!
# (Note that "Size of @a" shows the temporary @a, not the original)
Next value = 1
Size of @a = 0
Next value = 2
Size of @a = 0
Next value = 3
Size of @a = 0
Next value = 4
Size of @a = 0
Next value = 5
Size of @a = 0
Next value =
Size of @a = 0
Next value =
Size of @a = 0
Next value =