$ perl -Mv5.14 -e'my @a; \$a[0]; say exists( $a[0] ) || 0;' 1 #### use Devel::Peek; my @z; $a = \$z[1]; say "\$z[$_] exists: ", exists( $z[$_] ) || 0 for 0..2; say '---Dump @z'; Dump @z; say '---Dump $z[0]'; Dump $z[0]; say '---Dump $z[1]'; Dump $z[1]; #### $z[0] exists: 0 $z[1] exists: 1 $z[2] exists: 0 ---Dump @z SV = PVAV(0x2770318) at 0x27a4930 REFCNT = 1 FLAGS = () ARRAY = 0x2787080 FILL = 1 MAX = 3 FLAGS = (REAL) Elt No. 0 SV = 0 ### 0 Elt No. 1 SV = NULL(0x0) at 0x2783d70 REFCNT = 2 FLAGS = () ---Dump $z[0] SV = NULL(0x0) at 0x7a91d0 ### NULL (WTF?) REFCNT = 2147483641 FLAGS = (READONLY,PROTECT) ---Dump $z[1] SV = NULL(0x0) at 0x2783d70 REFCNT = 2 FLAGS = ()