gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 18:08:07 24 4
gpt4 key购买 nike

我正在寻找一种方法来清除 Perl 程序中的所有数组。

目前,我正在调用一个显式“重置”所有数组的子例程:
sub clear_arrays{(@array1,@array2,@array3)=((),(),());}
这迫使我找到程序中的所有数组,并在子程序中逐字引用它们。

我查看了 reset 的 perldoc , undef , 和 delete但无法以清除所有数组的方式解释它们中的任何一个。

是否有 Perl 的内置函数可以做到这一点?

如果没有,是否有一个函数可以返回所有数组变量的数组?

前任:

my @prog_arrays = getarrays();
foreach(@prog_arrays){$_ = ();}

哪里 getarrays()可能是一个内置的 Perl 函数,它返回程序中的任何/所有初始化数组。

编辑:
我的特殊情况只涉及两个需要重置的全局数组。我出于好奇而不是出于必要扩大了这个问题。基本上,我的全局变量是 @email_subject & @email_msg .

随着脚本的进展和数据的收集/分析,它们将值插入其中。在脚本结束时,发送电子邮件消息,并且脚本可能会根据循环条件变量再次运行。

如果它再次运行,我需要清除这 2 个全局变量,以便在下一个循环周期中再次聚合它们。通过字面引用清除这两个数组并没有让我失望,但我只是想知道 Perl 是否已经有一些内置函数来清除数组而不用字面引用它们。

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

最佳答案

不要使用全局数组。就这么简单。词法数组仅限于声明它们的范围,并在您进入范围时自动开始为空。

如果您必须使用全局变量,无论如何将它们全部记录在一个地方是个好主意,因此清除它们应该不难。

有人曾经发布了一个现在臭名昭著的工具,让 perlmonks 做你想做的事。在收到对整个想法的大量批评后,该代码被撤回了;你可以在这里阅读一些批评:http://www.perlmonks.org/index.pl?node_id=349496

关于arrays - 是否有内置函数来清除所有变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6036244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com