in reply to How to sort the data in Array which has format MMYY

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re^2: How to sort the data in Array which has format MMYY
by Anonymous Monk on Jul 02, 2013 at 15:04 UTC

    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";