On 7/10/06, Charles K. Clarkson <[EMAIL PROTECTED]> wrote:
Mr. Shawn H. Corey wrote:
We could do a unique check only when the array is accessed
instead of every time a value is added. Then we used the cached
result until another element is added.
I'd be inclined to to flip that around: check for uniqueness on add,
sort and do something like :
#!/usr/bin/perl -w
use strict;
my %recent;
my $limit = 10;
sub get_list {
my @sorted = sort {$recent{$b} <=> $recent{$a}} keys %recent;
foreach (@sorted[$limit..$#sorted]){
delete $recent{$_};
}
return @sorted[0..$limit-1];
}
# example usage:
foreach ('a'..'z') {
$recent{$_} = time;
sleep 1;
}
print get_list(), "\n";
while (my ($k, $v) = each %recent) {
print "$k: $v\n";
}
HTH,
-- jay
--------------------------------------------------
This email and attachment(s): [ ] blogable; [ x ] ask first; [ ]
private and confidential
daggerquill [at] gmail [dot] com
http://www.tuaw.com http://www.dpguru.com http://www.engatiki.org
values of β will give rise to dom!