perl - 如何全局声明一个变量,使其对所有 perl 模块都可见?

标签 perl perl-module

嗨,我有一个名为 main.pl 的 Perl 脚本。此 Perl 脚本调用三个名为 sub1.pmsub2.pmsub3.pm 的 Perl 模块。 sub.pm 返回在 sub2.pmsub3.pm 中使用的三个哈希值。我将哈希值作为输入参数传递给 sub2 和 sub3。相反,有什么方法可以全局声明哈希值,以便这两个 perl 模块可以看到它?

最佳答案

当你声明非全局变量时,通过在其前面加上“my”来完成。即:

我的 $local_variable = 4;

您想要做的是将“我的”替换为“我们的”,并确保它放置在子例程之外。即:

我们的 $global_variable = 4;

如果你想在其他模块中使用它,可以通过以下方式添加:

使用 vars qw($global_variable);

既然我告诉了你如何做,我就告诉你不要这样做。强烈建议不要使用全局变量。您应该尽可能使用局部变量。这样做的原因是,如果您曾经处理过较大的项目或具有多个编码器的项目,那么您可能会发现未知错误,因为某些变量可能不等于您期望的值,因为它们在其他地方发生了更改。

关于perl - 如何全局声明一个变量,使其对所有 perl 模块都可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35082595/

相关文章:

perl - 使用 perl 同时连接多个 URL 的最佳方法是什么

javascript - 通过AJAX调用Perl脚本打印文本文件的内容

eclipse - 在 eclipse juno 中安装 EPIC

java - 安装 Perl 模块 Java::Import 时出现问题

Perl:如何在样板模块中注入(inject) UTF-8 pragma?

java - Perl 网络应用程序和 liferay 门户认证

perl - 无法使用 perl5.8.4 在 @INC 中运行 perl 程序 : Can't locate Time/Piece. pm 并且无法使用 perl 5.12.3 在 @INC 中找到 DBI.pm

perl - 如何为 Perl 模块构建 list 文件

perl - 我如何从一个 Perl 模块的子例程中获取它的名称?

linux - 如何避免在 perl 脚本中硬编码用户名/密码