$ perl -MDevel::Peek -e'Dump(undef)'
SV = NULL(0x0) at 0x2186148
REFCNT = 2147483639
FLAGS = (READONLY,PROTECT)
####
$ perl -MDevel::Peek -e'Dump($a[0])'
SV = NULL(0x0) at 0x1116148
REFCNT = 2147483639
FLAGS = (READONLY,PROTECT)
##
##
$ perl -MDevel::Peek -e'$a[0]=undef; Dump($a[0])'
SV = NULL(0x0) at 0xc93f90
REFCNT = 1
FLAGS = ()
##
##
use feature qw( say );
my @a;
{ say open(my $fh, '<', $a[0]) ? 1 : 0; } # 1
$a[1] = undef;
{ say open(my $fh, '<', $a[0]) ? 1 : 0; } # 1
$a[0] = undef;
{ say open(my $fh, '<', $a[0]) ? 1 : 0; } # 0
delete($a[0]);
{ say open(my $fh, '<', $a[0]) ? 1 : 0; } # 1