相关疑难解决方法(0)

是否有内置函数来清除所有变量值

我正在寻找一种方法来清除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是否已经有一些内置函数来清除数组而不是直接引用它们.

这可能不是实现这一目标的最佳方式,但这是我考虑的第一个直观选项.

arrays perl undef reset

4
推荐指数
3
解决办法
5448
查看次数

标签 统计

arrays ×1

perl ×1

reset ×1

undef ×1