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;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.505 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )