monkfan,
Not only does your code not do what was asked for, I think it is broken. I believe both uses of glob in your while loop lead to infinite loops. I can't be sure as I don't have access to perl currently. Update: tye informed me this does work. This is because glob in scalar context doesn't create an iterator, it is an iterator. After re-reading I/O Operators in perlop I realized I was mistaken. I would still recommend spelling out glob over angle brackets to avoid confusion with readline.
Update 2: I am not sure why, but this still seems odd to me. Perhaps it is because I have less than 30 hours to wait before starting a 3 week vacation. I wonder how the following two examples would behave (i.e. how they are scoped):
while (my $file = next_file()) {
print "$file\n";
}
sub next_file { <*> }
while (my $file = next_file()) {
print "$file\n";
my $next = <*>;
last if ! defined $next;
print "$next\n";
}
sub next_file { <*> }
|