in reply to How to sort the data in Array which has format MMYY
New to perl because you of time of practice or things you don't know? Whichever, you still have to make time to know the right tools for your job.
Without taking anything away from the wise monks that has posted here before now, you can use Schwartzian transform like so:
Schwartzian transform is simply using "map" and "sort" from perl is nothing difficult..... you see :)use warnings; use strict; my @mon_yr = qw/ APR12 MAR13 APR11 MAR12 FEB13 APR13/; my %mon_name = ( 'JAN' => 1, 'FEB' => 2, 'MAR' => 3, 'APR' => 4, # add others if you want ); print join $/ => map { $_->[0] } sort { $a->[2] <=> $b->[2] || $a->[1] <=> $b->[1] } map { /(\w+?)(\d+?)$/; [ $_, $mon_name{$1}, $2 ] } @mon_yr; print $/;
|
---|