in reply to Selection of Hash key value pairs
use strict; use warnings; # Initialise a hash with random values. # our %hash; $hash{$_} = int rand 500 for 0 .. (int rand 100) + 100; # Count our keys, calculate top 20% number, initialise # count of how many printed. # our $keyCt = scalar keys %hash; our $perc = 20; our $limit = int($keyCt * $perc / 100); our $iters = 0; # Feed in keys, map keys and values, sort by values, # grep out the top however many and print key and # value. # print map {"$_->[0] - $hash{$_->[0]}\n"} grep {$iters ++ < $limit} sort {$a->[1] <=> $b->[1]} map {[$_, $hash{$_}]} keys %hash;
I hope this is of use.
Cheers,
JohnGG
|
|---|