perl basic code

Hi,

foreach $cat (sort{$cats{$b} <=> $cats{$a}} keys %cats)

can anyone explain me above code?? i am new to perl

Thanks

It sort()'s sort{ ... } a hash's keys keys %cats depending on their contents (so it'd compare 6 to 8 in this example, rather than 5 to 7) $cats{$b} <=> $cats{$a} then loops over each result foreach $cat (...) putting each result in $cat in turn.

#!/usr/bin/perl
my %cats=(      1 => 2,
                3 => 4,
                5 => 6,
                7 => 8,
                9 => 20,
                19 => 18,
                17 => 35 );

foreach $cat (sort{$cats{$b} <=> $cats{$a}} keys %cats)
{
        print "$cat => $cats{$cat}\n";
}

exit(0);