Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

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

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


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 an XS 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 do several things.
It 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 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.

The < and > order will cause Object and Any elements to store the key as an NV (these two already were wrapped heap types).

It has no effect on 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->implementation will return "Heap::Simple::XS" if it selected this module.


EXPORT

None.


SEE ALSO

the Heap::Simple manpage, the Heap::Simple::Perl manpage


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.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy