This will make @myarray = undef.
I suspect this is just a case of casual, imprecise language, but you are likely to mislead people with that particular phrasing:
my @myarray = undef;
print "\@myarray contains ", 0+@myarray, " elements.\n";
@myarray contains 1 elements.
@myarray = undef;
is the same as
@myarray = ( undef );
which isn't at all the same as
is a function that undefines what is passed to it and then returns a not-defined