Hash-PriorityQueue
view release on metacpan or search on metacpan
lib/Hash/PriorityQueue.pm view on Meta::CPAN
my $elem = shift(@{$self->{queue}->{$self->{min_key}}});
if (!@{$self->{queue}->{$self->{min_key}}}) {
delete($self->{queue}->{$self->{min_key}});
$self->{min_key} = min keys(%{$self->{queue}});
}
delete($self->{prios}->{$elem});
return $elem;
}
sub update {
my ($self, $payload, $priority) = @_;
my $op = $self->{prios}->{$payload};
if (defined($op)) {
$self->{queue}->{$op} = [ grep { $_ ne $payload } @{$self->{queue}->{$op}} ];
if (!@{$self->{queue}->{$op}}) {
delete($self->{queue}->{$op});
}
}
$self->{prios}->{$payload} = $priority;
( run in 0.451 second using v1.01-cache-2.11-cpan-4d4bc49f3ae )