Maybe when replying to somebody who already says is new to perl, it would be nice to actually test your code.
Problems:
1) don't pass $a and $b to a sort sub, since they are special variables
2) don't treat a hash like a hashref, it just won't work
3) you don't need the return either
This does work:use strict; use warnings; my %month_sort = ( 'JAN' => 1, 'FEB' => 2, 'MAR' => 3, 'APR' => 4, 'MAY' => 5, 'JUN' => 6, 'JUL' => 7, 'AUG' => 8, 'SEP' => 9, 'OCT' => 10, 'NOV' => 11, 'DEC' => 12 ); sub sort_cmp { ( substr($a, 3, 2) cmp substr($b, 3, 2) ) || ( $month_sort{substr($a, 0, 3)} <=> $month_sort{substr($b, 0, 3)} ); } my (@months) = qw(APR12 MAR13 APR11 MAR12 FEB13 APR13); @months = ( sort sort_cmp @months); print "@months \n";
In reply to Re^2: How to sort the data in Array which has format MMYY
by Anonymous Monk
in thread How to sort the data in Array which has format MMYY
by kum@12
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |