$ perl -wle '@a = 1..3; @b = grep { defined $_ } @a[-4 .. -1]; print "<$_>" for @b;' Modification of non-creatable array value attempted, subscript -4 at -e line 1. $ perl -wle '@a = 1..3; @b = @a[-4 .. -1]; @b = grep {defined $_} @b; print "<$_>" for @b;' <1> <2> <3>