pat_mc has asked for the wisdom of the Perl Monks concerning the following question:

Esteemed Monks -

I am puzzled and hope your wisdom can enlighten me. I have written a short test programme to study an unexpected behaviour and do not understand why it is behaving the way it is:

for my $input_file ( @ARGV ) { while ( ! eof ) { print <>; } print "=========SEPARATOR: Processing $input_file =========\n"; }
I know this might be an unusual way to write things, but this is just a reduction of another programme which necessitated this kind of code structure.

What I am finding is that when I invoke the script with two argument files, it prints the separator once - not inbetween the contents of the first and the second file but at the end of the second file. I would have expected it to print the contents of the first file, then the separator, then the contents of the second file and the separator again. Also, the separator listed the name of the first argument file instead of that of the second file. Why did it do that??

Thanks for your help in advance!

Cheers -