NAME
Tie::Indirect::* -- tie variables to access data located at run-time.
DESCRIPTION
Each tied variable accesses data located by calling a sub
which returns a reference to the data.
The sub is called with parameters ($mutating, optional tie args...)
where $mutating is true if the access may modify the value.
tie $scalar, 'Tie::Indirect::Scalar', \&sub, optional tie args...
tie @array, 'Tie::Indirect::Array', \&sub, optional tie args...
tie %hash, 'Tie::Indirect::Hash', \&sub, optional tie args...
EXAMPLE:
my $dataset1 = { foo=>123, table=>{...something...}, list=>[...] };
my $dataset2 = { foo=>456, table=>{...something else...}, list=>[...] };
my $masterref;
our ($foo, %table, @list);
tie $foo, 'Tie::Indirect::Scalar', sub{ \$masterref->{$_[1]} }, 'foo';
tie %table, 'Tie::Indirect::Hash', sub{ $masterref->{$_[1]} }, 'table;
tie @list, 'Tie::Indirect::Array', sub{ $masterref->{list} };
$masterref = $dataset1;
... $foo, %table, and @list now access members of $dataset1
$masterref = $dataset2;
... $foo, %table, and @list now access members of $dataset2
AUTHOR / LICENSE
Jim Avera (jim.avera AT gmail) / Public Domain or CC0