%foo = ( a => 1, b => 2, c => 3 }; sub mysub { my %x = shift; ... } #### my %foo = ( a => 1, b => 2, c => 3 ); mysub(\%foo); sub mysub { my %x = %{scalar shift}; foreach ( sort keys %x ) { print "$_ -> $x{$_}\n"; } } #### my %foo = ( a => 1, b => 2, c => 3 ); mysub(\%foo); sub mysub { my $x = shift; my %x = %{$x}; foreach ( sort keys %x ) { print "$_ -> $x{$_}\n"; } } #### my %foo = ( a => 1, b => 2, c => 3 ); mysub(\%foo); sub mysub { my %x = %{shift}; foreach ( sort keys %x ) { print "$_ -> $x{$_}\n"; } }