in reply to sort direction

I think you're looking for something like:
sub mysort { my ($direction) = @_; my ($one, $two) = @hash{($direction eq 'DESC') ? ($b, $a) : ($ +a, $b)}; $one->{$orderby} <=> $two->{$orderby} or $one->{$orderby} cmp $two->{$orderby} } # end-sub

Caution: Contents may have been coded under pressure.