in reply to Alpha numeric sort

Cool, I just needed to do more thinking. I think I have it figured out...

How's this?
use strict; my %dataset; while (<>) { # $_ => Id, Loc, Value, Etime my ($id, $loc, $value, $etime) = split(/,/, $_); $dataset{$id}{$etime} = { "Value" => $value, "Loc" => $loc, }; } foreach my $id (sort keys %dataset) { foreach my $etime ( map { $_->[0] } sort sort_loc map { [$_, $datas +et{$id}{$_}{Loc}] } keys %{$dataset{$id}} ) { my $loc = $dataset{$id}{$etime}{Loc}; my $value = $dataset{$id}{$etime}{Value}; printf(STDOUT "%2s, %6s, %.1f, %i\n", $id, $loc, $value, $etime) +; } } sub sort_loc { my ($loc_a, $head_a) = $a->[1] =~ /S(\d+)H(\d)/; my ($loc_b, $head_b) = $b->[1] =~ /S(\d+)H(\d)/; if (($head_a <=> $head_b) == 0) { $loc_a <=> $loc_b; } else { $head_a <=> $head_b; } }
Thanks again!
Ryan