my $h = {'name' => 'value', ...};
creates two variables (a hash and a reference to it), while
my %h = ('name' => 'value', ...);
creates only the hash.
my $h = {'name' => 'value', ...};
requires dereferencing to access the hash, while you might need to create references to
my %h = ('name' => 'value', ...);
to use it.
It is less obvious in
my $h = {'name' => 'value', ...};
than in
my %h = ('name' => 'value', ...);
that was are dealing with a hash because the hash sigil is not used in the former.
However, all of the above are rather inconsequential. The real difference is that it would have been much less work to switch to
my $h = {'name' => 'value', ...};
rather than to
my %h = ('name' => 'value', ...);
since the rest of the code was expecting a reference to a hash.
In reply to Re: Relative Merits of References
by ikegami
in thread Relative Merits of References
by pbeckingham
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |