in reply to Difference in Hash Declaration
The only one that is syntactically valid is the second one, however, I don't believe that it is doing what you are expecting. Since the parens denote precedence, what Perl reads it as is:
my %sham = ( 1 => "j", 2 => "b", 1 => "p", 2 => "b", );
When assigning to hashes, later insertions with the same key end up replacing any earlier entries with the same key, leaving you with:
my %sham = ( 1 => "p", 2 => "b", );
This can be shown with the use of Data::Dumper or the like. I think what you are intending is:
my @sham = ( # note the sigil { 1 => "j", 2 => "b", }, { 1 => "p", 2 => "b", }, );
Data::Dumper (and any similar module) is a useful tool for visualizing nested data structures.
--MidLifeXis
|
|---|