That part works. The empty diamond, used to read the contents of all files (or STDIN) is what doesn't work without setting up @ARGV. That dual use is why I prefer an explicit glob() over the diamond...

And so do I ;-)... In fact, just last week at $DAYJOB, I had an interesting "discussion" with $COWORKER who is relatively new to Perl and insisted that

while ( <> )

while ( <file*> )

while ( <@ARGV> )

all do the same thing. When $COWORKER was confronted with examples of the differences, the "problem" morphed first into "a bug in Perl", then to "incorrect documentation", then to "should do the same thing" (I guess that's progress :-) ). All of which is a long (and hopefully slightly humorous) explanation of why I should have caught what you were saying the first time.