http://qs1969.pair.com?node_id=489059

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I was reading in Effective Perl Programming about creating hash references such as this:
$student = {}; $student->{last} = 'Smith';
I believe he is saying that this is more efficient to be passed to a subroutine, and I agree with that.
What puzzles me though is that you can, and should, always pass a reference to a hash, or array, to a subroutine anyway:
&sub(\%hash, \@array);
I have also heard that it is faster to create and use a hash reference in general than using a "regular" hash such as:
my %student = {}; $student{'last'} = 'Smith';
This might be a silly question but is it more efficient to declare and uses hashes that way (reference) and if it is more efficient then why do we have the possibility to declare and use them the "regular" way?
Is it one of those TIMTOWTDI things?

Confused Monk