Neither result is consistent with my understanding of the 5.22 documentation.
while (<>) {
... # code for each line
}
is equivalent to the following Perl-like pseudo code:
unshift(@ARGV, '-') unless @ARGV;
while ($ARGV = shift) {
open(ARGV, $ARGV);
while (<ARGV>) {
... # code for each line
}
}
I would expect the open to fail silently.(There is no explicit test for errors.) The read on the unopened filehandle should return a false value. The loop would terminate without ever executing the print statement.