in reply to check array reference empty

Any element of any array can be "undefined".
A reference to an array is defined if the array exists. That array may contain Zero (No) elements.
#!/usr/bin/perl -w use strict; my $arr_ref2 = []; print "".defined $arr_ref2 ? "arr_ref2 is defined\n" : "arr_ref2 is not defined\n"; print "".defined $arr_ref2->[0] ? "arr_ref2->[0] is defined\n" : "arr_ref2->[0] is not defined\n"; my $arr_ref3 = [1,2,undef,4]; # [2] is undefined! print "\n"; print "".defined $arr_ref3->[2] ? "arr_ref3->[2] is defined\n" : "arr_ref3->[2] is not defined\n"; print "".defined $arr_ref3->[1] ? "arr_ref3->[1] is defined\n" : "arr_ref3->[1] is not defined\n"; __END__ arr_ref2 is defined arr_ref2->[0] is not defined arr_ref3->[2] is not defined arr_ref3->[1] is defined