my %forward = ( a => 1, b => 2, ); for (sort keys %forward) { print $_, ":", $forward{$_}, "\n"; }; my %reverse = reverse %forward; for (sort keys %reverse) { print $_, ":", $reverse{$_}, "\n"; }; #### use strict; use warnings; use constant MONTH => { jan => 1, feb => 2, mar => 3, apr => 4, may => 5, jun => 6, jui => 7, aug => 8, sep => 9, oct => 10, nov => 11, dec => 12 }; my %reverse_month = reverse %{ +MONTH }; print $_, ":", $reverse_month{$_},"\n" for sort { $a <=> $b} keys %reverse_month;