#!/usr/bin/perl my (@ar1, @ar2); $ar1[0] = 1; $ar1[1] = 0; # a defined element, not NULL $ar1[7] = 9; # skip, leaving 2..6 undefined # dump array 1 print("\@ar1:\n"); for my $i (0..$#ar1) { print(" $i : $ar1[$i]\n"); } # weed the undefined elements @ar2 = grep { defined $_ } @ar1; print("\@ar2:\n"); for my $i (0..$#ar2) { print(" $i : $ar2[$i]\n"); }