| Tie-Alias-Array documentation | Contained in the Tie-Alias-Array distribution. |
Tie::Alias::Array - required by Tie::Alias::TIEARRAY
Tie::Alias
| Tie-Alias-Array documentation | Contained in the Tie-Alias-Array distribution. |
package Tie::Alias::Array; use 5.008; use strict; use warnings; use Carp; our $VERSION = '0.01'; sub isAlias { 1; }; sub TIEARRAY { my ( $class , $ref ) = @_ ; ref($ref) or croak "NOT A REFERENCE"; if ( eval { tied($$ref) -> isAlias } ) { # we are re-aliasing something return tied ($$ref); }else{ # $ref is already a pointer to the object bless $ref, $class; }; }; sub FETCH{ $_[0]->[$_[1]]; }; sub STORE{ $_[0]->[$_[1]] = $_[2]; }; sub FETCHSIZE{ scalar @{$_[0]}; }; sub STORESIZE{ $#{$_[0]} = $_[1] -1 ; }; sub POP{ pop @{$_[0]}; }; sub CLEAR{ @{$_[0]} = (); }; sub PUSH{ my $r = shift; push @{$r}, @_; }; sub SHIFT{ shift @{$_[0]}; }; sub UNSHIFT{ my $r = shift; unshift @{$r}, @_; }; sub SPLICE{ my $r = shift; my $o = shift || 0; my $l = shift || scalar(@{$r}) - $o; splice @{$r}, $o, $l, @_; }; sub DELETE{ delete $_[0]->[$_[1]]; }; sub EXISTS{ exists $_[0]->[$_[1]]; }; 1; __END__