my @SortedKeys = sort {$field{$a} cmp $field{$b}} keys %fields; #### my @SplitEntries = map{[split( '|', $_)]} @Entries; foreach $Lineref (sort {$a->[8] cmp $b->[8]} @SplitEntries) { my @Fields = @$Lineref; # This will be in sorted order, by Artist Name # $Fields[0] is CassID, $Fields[1] is CDID, etc } #### my @SplitEntries = map{[split( '|', $_)]} @Entries; my @Names = map{[$_, @SplitEntries[$_]]} @SplitEntries; my @SortedIndices = map {$_->[0]} sort {$a->[1] cmp $b->[1]} @Names; foreach $lineref (@SplitEntries{@SortedIndices}){ my @Fields = @$Lineref; ... }