in reply to Reference curiosity?

your first version 'print 1 2 3' from the global hash hash. It works also fine without my ($hash)=@_; .
the second one can not print 1 2 3, since it want s to print from a hash, but your hash is a hashref.
use strict; use warnings; # ;-)
Boris