Heap::Simple::XS - An XS implementation of the Heap::Simple interface
# Let Heap::Simple decide which implementation that provides its interface # it will load and use. This may be Heap::Simple::XS or it may not be. # Still, this is the normal way of using Heap::Simple use Heap::Simple; my $heap = Heap::Simple->new(...); # Use heap as described in the Heap::Simple documentation
# If for some reason you insist on using this version: use Heap::Simple::XS; my $heap = Heap::Simple::XS->new(...); # Use the XS heap as described in the Heap::Simple documentation
This module provides an XS implementation of the interface described in Heap::Simple. Look there for a description.
<
and >
orders
to be stored internally as an NV (double or long double). This means you lose
magic, overload and any internal integer representation.
<
and >
order will cause Array
and Hash
elements
to get their key internally cached as an NV. So indirect changes to the value
won't be noticed anymore (but most of the time you shouldn't do that anyways).
It also means these will start behaving like a wrapped heap type, so they
return true for wrapped and support
key_insert and
key_absorb.
<
and >
order will cause Object
and Any
elements
to store the key as an NV (these two already were wrapped heap types).
Method
and Function
element types since it's
assumed you want the key recalculations for these for some reason (if you
didn't, you would have asked for Object
or Any
elements).
"Heap::Simple::XS"
if it selected
this module.
None.
the Heap::Simple manpage, the Heap::Simple::Perl manpage
Ton Hospel, <Heap-Simple-XS@ton.iguana.be>
Parts are inspired by code by Joseph N. Hall http://www.perlfaq.com/faqs/id/196
Copyright (C) 2004 by Ton Hospel
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.6.1 or, at your option, any later version of Perl 5 you may have available.