in reply to How can one determine context within FETCH?
use strict; use warnings; use Tie_hash ; use Tie_array ; my %hash; my @arr ; tie %hash, 'Tie_hash' ; tie @arr, 'Tie_array' ; $hash{'key'} = \@arr ; print $hash{'key'}->[0] ; untie %hash; untie @arr ; package Tie_Array; use strict; use warnings; sub TIEARRAY { my $obj = [ "hi" ] ; return bless $obj, shift ; } sub FETCH { my ( $self, $key) = @_ ; return $self->[$key] ; } sub STORE {} sub DESTROY {} package Tie_hash; use strict; use warnings; sub TIEHASH { return bless {}, shift ; } sub FETCH { my ( $self, $key) = @_ ; return $self->{$key} ; } sub STORE { my ( $self, $key, $val ) = @_ ; $self->{$key} = $val ; } sub DESTROY { }
|
|---|