my %hash1 = ( ); # %hash1 is a normal hash (note the '%' prefix) $hash1{$name} -> {'uid'} = $uid; $hash1{$name} -> {'gid'} = $gid; $hash1{$name} -> {'gecos'} = $gecos; #### my $hash1 = { }; # $hash1 is a hash reference (note the '$' prefix) $hash1 -> {$name} -> {'uid'} = $uid; $hash1 -> {$name} -> {'gid'} = $gid; $hash1 -> {$name} -> {'gecos'} = $gecos; #### $VAR1 = { 'jblow' => { '2195' => { 'gecos' => 'Joe Blow,,,', 'gid' => '20' } } }; #### $VAR1 = { 'jblow' => { 'uid' => '2195', 'gecos' => 'Joe Blow,,,', 'gid' => '20', '2195' => { 'gecos' => 'Joe Blow,,,', 'gid' => '20' } } };