#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash_1 = (a => 26, b => 2, c => 3); my %hash_2 = (z => 26, y => 25); my ($ahashref, $bhashref) = func(\%hash_1, \%hash_2); print Dumper $ahashref, $bhashref; sub func { my ($cref, $dref) = @_; if (keys %$cref > keys %$dref) { return ($cref, $dref); } else { return ($dref, $cref); } }