NAME

Tie::Hash::Method - Tied hash with specific methods overriden by callbacks

VERSION

Version 0.01

SYNOPSIS

tie my %hash, Tie::Hash::Method => FETCH => sub {
    exists $_[0]{hash}{$_[1]} ? $_[0]{hash}{$_[1]} : $_[1]
};
print join "\n", tied(%hash)->methods;
print Dumper(tied(%hash)->hash);

DESCRIPTION

Tie::Hash::Method provides a way to create a tied hash with specific overriden behaviour without having to create a new class to do it. A tied hash with no methods overriden is functionally equivalent to a normal hash.

Each method in a standard tie can be overriden by providing a callback to the tie call. So for instance if you wanted a tied hash that changed 'foo' into 'bar' on store you could say:

tie my %hash, Tie::Hash::Method => STORE => sub {
    (my $v=pop)=~s/foo/bar/g if defined $_[2];
    return $_[0]{hash}{$_[1]}=$v;
};

The callback is called with exactly the same arguments as the tie itself, in particular the tied object is always passed as the first argument. The tied object is itself a hash, which contains a second hash in the "hash" slot which is used to perform the default operations. The callbacks available are the other keys in the object. If your code needs to store extra data in the object it should be stored in the 'pvt' slot of the object. No future release of this module will ever use or alter anything in that slot.

CALLBACKS

STORE this, key, value

Store datum value into key for the tied hash this.

FETCH this, key

Retrieve the datum in key for the tied hash this.

FIRSTKEY this

Return the first key in the hash.

NEXTKEY this, lastkey

Return the next key in the hash.

EXISTS this, key

Verify that key exists with the tied hash this.

DELETE this, key

Delete the key key from the tied hash this.

CLEAR this

Clear all values from the tied hash this.

SCALAR this

Returns what evaluating the hash in scalar context yields.

Methods

hash

return or sets the underlying hash for this tie.

methods

returns a list of methods that are overriden for this tye.

Exportable Subs

The following subs are exportable on request:

tie_hash_method(PAIRS)

Returns a reference to a hash tied with the specified callbacks overriden. Just a short cut.

AUTHOR

Yves Orton, <yves at cpan.org>

BUGS

Please report any bugs or feature requests to bug-tie-hash-method at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Tie-Hash-Method. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Tie::Hash::Method

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2008 Yves Orton, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.