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

2024-01-23

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

目前,我正在调用一个显式“重置”所有数组的子例程:

sub clear_arrays{(@array1,@array2,@array3)=((),(),());}

这迫使我找到程序中的所有数组并在子例程中逐字引用它们。

我查看了 perldocreset, undef, and delete但无法以清除所有数组的方式解释其中任何一个。

Perl 有内置函数可以做到这一点吗?

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

Ex:

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

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


EDIT:
My particular situation involves only two global arrays that need to be reset. I broadened the question out of curiosity rather than necessity. Basically, my globals are @email_subject & @email_msg.

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

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

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


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有内置函数可以清除所有变量值 的相关文章

随机推荐

  • TFS 2010“主”构建日志在哪里?

    我试图在测试 TFS 2010 版本中找出单元测试的一些问题 整个日志文件报告了从 MSTest 返回的错误 但我能找到的唯一日志文件 正在编译的各个项目的日志文件 表明没有问题 在哪里可以找到用于生成构建报告的 主 日志文件 据我所知 构
  • 如何使用 flutter 访问 JSON 对象?

    如何访问我的 JSON 对象 Getting Employee Title null如何直接使用该对象 像这样获得正确的输出Text Employee Title list 0 title 或者直接使用模型对象的任何其他方式 正确的方法是什
  • 如何更改日历对象的格式[重复]

    这个问题在这里已经有答案了 我有一个字符串 例如Thu May 10 15 48 23 IST 2018 如何将此字符串转换为日历对象形式 格式为 2018 05 10 15 48 23 84 首先使用查看DateTimeFormatter
  • Emberjs + data + Rails - 未捕获类型错误:无法调用未定义的方法“map”

    当我尝试使用 emberjs ember 数据从 Rails db 加载数据时 出现此错误 未捕获的类型错误 无法调用未定义的方法 map 这是咖啡脚本代码 window Cosmetics Ember Application create
  • 只是尝试为输入文本提供粗体字体

    我试图用下面的方式为输入提供粗体字体 但它不起作用
  • 有没有办法使用“matplotlib”生成视网膜图?

    蟒蛇的matplotlib不生成 Retina 显示质量LaTeX默认文本 是否有可生成 Retina 质量输出的设置或附加包 你正在用吗 Agg 模式 标准 创建 PNG 图形 您可以使用 Matplotlib 创建 SVG 图形 其质量
  • 为什么带有引号的空格的命令在通过 ssh 传递时不起作用?

    我正在构建这个项目 其中我必须使用 ssh 执行 UNIX 命令 这是我的问题 当我在 UNIX shell 中执行以下命令时 echo Hello World 它产生输出 Hello World 中间有 5 个空格 因为参数是在双引号内给
  • React Native 重复超时将集合写入 firestore@firebase/firestore:Firestore (8.4.2):连接 WebChannel 传输错误

    我正在尝试将用户从 React Native 应用程序写入 Firestore 集合 用户在身份验证下在 firebase 中创建 但随后挂在 firebase firestore collection users doc uid set
  • 如何在 intellij 中调试 play Framework 2.1.0 scala 测试

    我尝试使用 intellij 调试一些测试 我已经配置了远程调试 如下所示 如何在IntelliJ Idea中进行play框架的调试 https stackoverflow com questions 5390178 how to make
  • preg_match_all 进入简单数组

    我有 preg match all 函数 preg match all h2 h2 is source output PREG SET ORDER 它按预期工作 但问题是 它对所有项目进行了两次 preg matches 并放入一个巨大的多
  • 我们可以使用Javascript获取浏览器历史记录吗?

    我们可以使用 Javascript 获取我的网站的浏览器历史记录吗 我可以看到一些旧的帖子和线程谈论这个 但这些方法对我不起作用 是否可能以及如何实现 出于隐私原因 不可能读取客户端浏览器历史数据 如果您正在尝试观察或生成有关访客的数据仅在
  • iOS6中控制MKMapView的动画速度

    我正在尝试在地图视图上跟踪一辆车 此代码应该以相同的速度为汽车和地图设置动画 以便注释视图始终出现在中心 UIView beginAnimations nil context NULL UIView setAnimationCurve UI
  • 如何根据多个条件用前一行填充 pandas 数据框列的行?

    免责声明 这可能是重复的 但我找不到确切的解决方案 请随意将此问题标记为重复 并在评论中提供重复问题的链接 我仍在学习 python 数据帧操作 这可能有一个非常简单的解决方案 我无法弄清楚 我有一个带有单列的 python 数据框 现在
  • 将分类数据传递给 Sklearn 决策树

    有几篇关于如何将分类数据编码到 Sklearn 决策树的文章 但从 Sklearn 文档中 我们得到了这些 决策树的一些优点是 能够处理数值数据和分类数据 其他技术通常专门用于分析仅具有一种变量类型的数据集 请参阅算法以获取更多信息 但运行
  • ManagedObjectContext 为零

    我正在尝试将核心数据添加到现有项目中 我有 1 添加了核心数据框架 2 向AppDelegate添加访问器和属性 3 创建数据模型文件 现在当我尝试打电话时NSManagedObjectContext context self manage
  • Ruby:通过使用模块扩展 File 来处理文件格式

    一旦我有一个File http ruby doc org core 2 3 1 File html例如 我想检查它是否匹配文件格式并且extend http ruby doc org core 2 3 1 Object html metho
  • Java 的 PDF 生成库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道以前有人问过这个问题 但我仍然不确定在我当前的项目中使用哪个 PDF 生成框架 我的要求 即时生
  • ScrollView 内 ListView 的滚动问题

    这是概念性的场景 不包括线性布局 ScrollView Button Checkboxes Spinner ListView full size non scrolling AdMob advert 即滚动窗格 顶部有一个过滤 UI 后面是
  • 冻结 Python Pandas 的问题

    我刚刚从 Python 2 7 升级到 3 6 我有一个相当大的带有 GUI 的脚本 我已使用 pyinstaller 将其冻结为 exe 文件 我现在对 py 脚本做了一些更改 在我冻结它之前它可以与新的 Python 版本一起使用 但是
  • 是否有内置函数可以清除所有变量值

    我正在寻找一种方法来清除 Perl 程序中的所有数组 目前 我正在调用一个显式 重置 所有数组的子例程 sub clear arrays array1 array2 array3 这迫使我找到程序中的所有数组并在子例程中逐字引用它们 我查看