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]->base_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 an array, which contains a second hash in the HASH slot (index 0) which is used to perform the default operations.
The callbacks available are in a hash keyed by name in the METHOD slot of the array (index 1).
If your code needs to store extra data in the object it should be stored in the PRIVATE slot of the object (index 2). No future release of this module will ever use or alter anything in that slot.
The arguments passed to the tie constructor will be seperated by the case of their keys. The ones with all capitals will be stored in the METHOD hash, and the rest will be stored in the PRIVATE hash.
Package Version | Update ID | Released | Package Hub Version | Platforms | Subpackages |
---|---|---|---|---|---|
0.02-bp156.3.1 info | GA Release | 2023-07-22 | 15 SP6 |
|
|
0.02-bp155.2.9 info | GA Release | 2023-05-17 | 15 SP5 |
|
|
0.02-bp154.1.19 info | GA Release | 2022-05-09 | 15 SP4 |
|
|
0.02-bp153.1.14 info | GA Release | 2021-03-06 | 15 SP3 |
|
|
0.02-bp152.3.13 info | GA Release | 2020-04-16 | 15 SP2 |
|
|
0.02-bp151.3.1 info | GA Release | 2019-07-17 | 15 SP1 |
|
|
0.02-bp151.2.12 info | GA Release | 2019-05-18 | 15 SP1 |
|
|
0.02-bp150.2.4 info | GA Release | 2018-07-30 | 15 |
|
|