The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Heap::Simple::XS - An XS implementation of the Heap::Simple interface

SYNOPSIS

    # 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

DESCRIPTION

This module provides a pure perl implementation of the interface described in Heap::Simple. Look there for a description.

NOTES

  • Even though this implementation is written in C, it fully supports overloading and magic (like ties).

  • The dirty option will cause scalars for the < and > orders to be stored internally as an NV (double or long double). This means you lose magic, overload and any internal integer representation.

    The < and > order will also cause Array and Hash elements to get their key internally cached as a NV. So indirect changes to the value won't be noticed anymore (but most of the time you shouldn't do that anyways).

  • Heap::Simple->implementation will return "Heap::Simple::XS" if it selected this module.

EXPORT

None.

SEE ALSO

Heap::Simple, Heap::Simple::Perl

AUTHOR

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 AND LICENSE

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.