$parameter_hash->{$this}{$value}{sort_by} = \&custom_sort; ... later, in some other subroutine ... my $sort_routine = $parameter_hash->{$this}{$value}{sort_by} || #other standard sorts here; foreach (sort $sort_routine keys %{ $parameter_hash->{$this}{$value}{value_list} }) { #do stuff } #### foreach (sort $sort_routine->(\%href) keys %{ $somehashref }) { #do stff } #### sort &{ $sort_routine }(\%href); sort &{ $sort_routine(\%href) };