http://www.perlmonks.org?node_id=399862

Irinotecan has asked for the wisdom of the Perl Monks concerning the following question:

Hi, Perl neophyte here. I'm wondering how to best go about recovering memory (internal to Perl, of course) for a large array.
my @array = (a, large, array, etc....); ... #Later, should I do: undef @array; #or @array = (); #And, if I want to re-use the variable even later, if I use undef, do +I: my @array = (a, new, array);
I guess what my real question is, does undef just force garbage collection, or does it actually un-declare the my definition, so that something later like @array=(...); creates a global? Thanks for any insight.