POD Documentation
Tie::ListKeyedHash - A system allowing the use of anonymous arrays as keys
to a hash.
use Tie::ListKeyedHash;
[$X =] tie %hash, 'Tie::ListKeyedHash';
$hash{['key','items','live']} = 'Hello!';
$hash{['key','trees','grow']} = 'Goodbye!';
print $hash{['key','items','live']},"\n";
my (@list) = keys %{$hash{['key']}};
print "@list\n";
untie %hash ;
Alternatively keys are accessible as:
$hash{'key','items','live'} = 'Hello!';
This way slows down the accesses by around 10% and cannot
be used for keys that conflict with the value of '$;'.
Also usable via the object interface methods 'put',
'get','exists','delete','clear'. The object interface
is about 2x as fast as the tied interface.
Tie::ListKeyedHash ties a hash so that you can use a reference to an array
as the key of the hash.
Minor documentation changes.
Renamed to 'Tie::ListKeyedHash' after discussion on comp.lang.perl.module
and added (on the suggestion of Ilya Zakharevich, <ilya@math.ohio-state.edu>
support for using the tie hash as $hash{'key1','key2','key3'} as well as
its native mode of $hash{['key1','key2','key3']}
Initial public release as 'Tie::ArrayHash'
- new(....);
-
Returns the object reference for the tie.
- TIEHASH(....);
-
Returns the object reference for the tie.
- STORE($key_ref,$value);
-
Stores the $value into the arrayhash location pointed to by
the $key_ref array reference.
If the '$key_ref' is a $; seperated text string instead of an array
reference, it splits it on $; and uses the resulting array as the actual
key.
- FETCH($key_ref);
-
Returns the value pointed to by the $key_ref array reference.
If the '$key_ref' is a $; seperated text string instead of an array
reference, it splits it on $; and uses the resulting array as the actual
key.
- DELETE($key_ref);
-
Deletes a specified item from the arrayhash.
If the '$key_ref' is a $; seperated text string instead of an array
reference, it splits it on $; and uses the resulting array as the actual
key.
- CLEAR;
-
Clears the entire arrayhash.
- EXISTS($key_ref);
-
Returns true if the specified arrayhash key exists, false if it does not.
If the '$key_ref' is a $; seperated text string instead of an array
reference, it splits it on $; and uses the resulting array as the actual
key.
- FIRSTKEY;
-
Returns the first key.
- NEXTKEY;
-
Returns the next key.
- DESTROY;
-
- clear;
-
Clears the entire hash.
- exists([@key_list]);
-
Returns true of the specified hash element exists, false if it does not.
Just as with normal hashes, intermediate elements will be created if they
do not already exist.
The strange elsif construct provides a performance boost for shallow keys.
- get([@key_list]);
-
Returns the contents of the object field denoted by the @key_list. This is
a way of making arbitrary keys that act like hashes, with the 'hardwiring'
requirements of hashes. The routine returns the the contents addressed by
'key1','key2','key3',...
The strange elsif construct provides a performance boost for shallow keys.
- put([@key_list],$value);;
-
Sets $value as the contents of the object field denoted by the
@key_list. This is a way of making arbitrary keys that act like hashes,
without the 'hardwiring' requirements of hashes.
The strange elsif construct provides a performance boost for shallow keys.
- delete([@key_list]);;
-
Deletes the object field denoted by the @key_list.
This is a way of making arbitrary keys that act like hashes, without the
'hardwiring' requirements of hashes.
The strange elsif construct provides a performance boost for shallow keys.
To Be Determined.
FIRSTKEY, NEXTKEY have to be tested completely.
Benjamin Franz <snowhare@nihongo.org>
Version 0.41 June 1999
Copyright © Benjamin Franz 1999. All rights reserved.
This program is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.
perl perltie
|