in reply to Sparse Array

It may be useful to you that an array element that has never been assigned to will return false when tested by exists (however, calling exists on array values is deprecated).

>perl -wMstrict -le "my @ra; $#ra = 10; @ra[3, 5, 7] = (33, 55, 77); ;; use Data::Dumper; print Dumper fetch(3, \@ra); print Dumper fetch(6, \@ra); ;; sub fetch { my ($i, $ar) = @_; return [ $i, $ar->[$i] ] if exists $ar->[$i]; return [ $i-1, $ar->[$i-1] ], [ $i+1, $ar->[$i+1] ]; } " $VAR1 = [ 3, 33 ]; $VAR1 = [ 5, 55 ]; $VAR2 = [ 7, 77 ];