in reply to Diamond errors

I could push $ARGV onto an array using eof and compare the result to @ARGV after the loop.

You can't do that because perl removes $ARGV from @ARGV for each file it processes so after the loop @ARGV is empty.

Naked blocks are fun! -- Randal L. Schwartz, Perl hacker