嗨,我有一个名为 main.pl 的 Perl 脚本。此 Perl 脚本调用三个名为 sub1.pm
、sub2.pm
和 sub3.pm
的 Perl 模块。 sub.pm
返回在 sub2.pm
和 sub3.pm
中使用的三个哈希值。我将哈希值作为输入参数传递给 sub2 和 sub3。相反,有什么方法可以全局声明哈希值,以便这两个 perl 模块可以看到它?
最佳答案
当你声明非全局变量时,通过在其前面加上“my”来完成。即:
我的 $local_variable = 4;
您想要做的是将“我的”替换为“我们的”,并确保它放置在子例程之外。即:
我们的 $global_variable = 4;
如果你想在其他模块中使用它,可以通过以下方式添加:
使用 vars qw($global_variable);
既然我告诉了你如何做,我就告诉你不要这样做。强烈建议不要使用全局变量。您应该尽可能使用局部变量。这样做的原因是,如果您曾经处理过较大的项目或具有多个编码器的项目,那么您可能会发现未知错误,因为某些变量可能不等于您期望的值,因为它们在其他地方发生了更改。
关于perl - 如何全局声明一个变量,使其对所有 perl 模块都可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35082595/