in reply to How do you specify which fields to sort by when sorting an array.
Remember that with this kind of structure the data flows from the bottom up. From the file, through the map which makes the proper array-of-arrays (AoA), and in to the sort routine which re-orders it before storing the result in @output.my @output = sort { $a->[0] cmp $b->[0] || $a->[3] <=> $b->[3] } map { chomp; [ split(',', $_, 4) ] } <INPUT_FILE>;
sub phone_value { my ($v) = @_; $v =~ tr/^0-9//d; return $v; } my @output = sort { $a->[0] cmp $b->[0] || phone_value($a->[3]) <=> phone_value($b->[3]) } map { chomp; [ split(',', $_, 4) ] } <INPUT_FILE>;
|
---|