... # assume the @data is your array of arrayrefs. # get the data sorted on field 2 (zero based) @data = numeric_sorter(2, @data) sub numeric_sorter { my ($field_num, @data) = @_; my @sorted_items = sort {$a->[$field_num] <=> $b->[$field_num]} @data; return @sorted_items; } #### @data = numeric_sorter(2, @data) sub alpha_sorter { my ($field_name, @data) = @_; my @sorted_items = sort {$a->{$field_name} <=> $b->{$field_name}} @data; return @sorted_items; }