http://www.perlmonks.org?node_id=773978


in reply to why the array index has to start at 0??

Just for the fun of it...

package base1arrays; use strict; use warnings; sub TIEARRAY { my ($pack,$arr) = @_; bless $arr, $pack; } sub FETCH { my ($arr,$i) = @_; return $arr->[$i-1]; } sub FETCHSIZE { @{$_[0]}; } sub STORE { my ($arr,$i,$v) = @_; $arr->[$i-1] = $v; return; } 1;

Test:

use strict; use warnings; use feature qw/ :5.10 /; use base1arrays; my @orig = qw/1 2 3 4 5/; tie my @arr, 'base1arrays',\@orig or die $!; say for (1..@arr); # "negative" (< 1) index also works say $arr[0]; # Prints 5

citromatik