my @data = ( [1,"info"], [1,"info"], [1,"info"], [2,"info"], [3,"info"], [3,"info"], [4,"info"], [4,"info"], [4,"info"], [4,"info"], ); #### my %freq = (); foreach my $datum (@data) { $freq{ sprintf("%d %s", @$datum) }++; } #### { local $,=$/; print sort { $freq{$b} <=> $freq{$a} } keys %freq; }