in reply to Re^4: @ARGV while (<>) hangs
in thread @ARGV while (<>) hangs

<> uses the 2-arg open, which combines the "mode" with the file name. It allows pipes to be specified and thus the script can be used to execute arbitrary commands. That may makes sense for some command line tools, but not in general. When using the 3-arg open, the mode and the file name are kept seperate, so an arbitrary command cannot be sneaked in. Seperation of code and data is always safer.