package Tie::Array::LastIndex; # ... use Carp 'croak'; use Exporter; @EXPORT = qw( which what ); # ... sub which (\@) { my $aref = shift; my $obj = tied @$aref; croak "which() only accepts arrays tied to " . __PACKAGE__ unless $obj and $obj->isa(__PACKAGE__); return $obj->{INDEX}; } sub what (\@) { my $aref = shift; my $obj = tied @$aref; croak "what() only accepts arrays tied to " . __PACKAGE__ unless $obj and $obj->isa(__PACKAGE__); return $obj->{ARRAY}[ $obj->{INDEX} ]; }