我正在寻找一种方法来清除Perl程序中的所有数组.
目前,我正在调用一个明确"重置"所有数组的子例程:
sub clear_arrays{(@array1,@array2,@array3)=((),(),());}
这迫使我找到程序中的所有数组,并在子程序中逐字引用它们.
我已经看过了的perldoc的reset,undef以及delete但是这将清除所有阵列的方式无法解释它们.
是否有Perl的内置函数可以做到这一点?
如果没有,是否有一个函数可以返回所有数组变量的数组?
例如:
my @prog_arrays = getarrays();
foreach(@prog_arrays){$_ = ();}
Run Code Online (Sandbox Code Playgroud)
哪里getarrays()可能是内置的Perl函数,它返回程序中的任何/所有初始化数组.
@email_subject&@email_msg.
随着脚本的进展和数据的收集/分析,它们会将值推入其中.在脚本结束时,将发送电子邮件消息,并且脚本可能会再次运行,具体取决于循环条件变量.
如果它再次运行,我需要清除这两个全局变量,以便它们可以在下一个循环周期中再次聚合.通过文字引用清除这两个数组并没有让我感到害怕,但我只是想知道Perl是否已经有一些内置函数来清除数组而不是直接引用它们.
这可能不是实现这一目标的最佳方式,但这是我考虑的第一个直观选项.