++ed by:

1 PAUSE user
2 non-PAUSE users.

Author image Marcus Holland-Moritz


Tie::Hash::Indexed - Ordered hashes for Perl


  use Tie::Hash::Indexed;

  tie my %hash, 'Tie::Hash::Indexed';

  %hash = ( I => 1, n => 2, d => 3, e => 4 );
  $hash{x} = 5;

  print keys %hash, "\n";    # prints 'Index'
  print values %hash, "\n";  # prints '12345'


Tie::Hash::Indexed is very similar to Tie::IxHash. However, it is written completely in XS and usually about twice as fast as Tie::IxHash. It's quite a lot faster when it comes to clearing or deleting entries from large hashes. Currently, only the plain tying mechanism is supported.



If Tie::Hash::Indexed is built with debugging support, you can use this environment variable to specify debugging options. Currently, the only useful values you can pass in are d or all, which both enable debug output for the module.


As the data of Tie::Hash::Indexed objects is hidden inside the XS implementation, cloning/serialization is problematic. Tie::Hash::Indexed implements hooks for Storable, so cloning or serializing objects using Storable is safe.

Tie::Hash::Indexed tries very hard to detect any corruption in its data at runtime. So if something goes wrong, you'll most probably receive an appropriate error message.


If you find any bugs, Tie::Hash::Indexed doesn't seem to build on your system or any of its tests fail, please use the CPAN Request Tracker at http://rt.cpan.org/ to create a ticket for the module. Alternatively, just send a mail to <mhx@cpan.org>.


If you're interested in what I currently plan to improve (or fix), have a look at the TODO file.


Copyright (c) 2003 Marcus Holland-Moritz. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


See perltie and Tie::IxHash.