gpt4 book ai didi

perl - 为什么用 "our"声明的变量在文件中可见?

转载 作者:行者123 更新时间:2023-12-04 02:59:58 25 4
gpt4 key购买 nike

从“我们的” perldoc:

our has the same scoping rules as my, but does not necessarily create a variable.


这意味着用 our声明的变量在文件中不应该可见,因为file是最大的词法范围。但是这是错误的。为什么?

最佳答案

您可以考虑使用our为程序包全局变量创建一个词法范围的别名。包全局变量可以从任何地方访问。这就是使它们全局化的原因。但是our创建的名称仅在our声明的词法范围内可见。

package A;
use strict;
{
our $var; # $var is now a legal name for $A::var
$var = 42; # LEGAL
}

say $var; # ILLEGAL: "global symbol $var requires explicit package name"
say $A::var; # LEGAL (always)

{
our $var; # This is the same $var as before, back in scope
$var *= 2; # LEGAL
say $var; # 84
}

关于perl - 为什么用 "our"声明的变量在文件中可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3626190/

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