use Data::Dumper; sub two_hash(\%\%) { my ($genes,$totals)=@_; return { %$genes,%$totals } } my %foo=qw(1 2); my %bar=qw(A B); print Dumper two_hash(%foo,%bar);