http://www.perlmonks.org?node_id=1036536


in reply to Re^3: Using the DATA file handle for ARGV
in thread Using the DATA file handle for ARGV

Once the magic *ARGV{IO} is gone, those variables are nothing special. Or am I still completely mistaken?

I think you're right. I think the magic belongs to readline ARGV , not readline *DATA, and when you do *ARGV = *DATA it makes *ARGV an alias for *DATA, doesn't make *DATA an alias for *ARGV, so *DATA has no magic

$ echo |perl -e " *ARGV = *DATA; print while <DATA> " $ echo |perl -e " *DATA = *ARGV; print while <DATA> " ECHO is on.