gpt4 book ai didi

perl - my 和 our 之间的区别? (在同一个文件中声明)

转载 作者:行者123 更新时间:2023-12-03 23:14:45 42 4
gpt4 key购买 nike

在写这个程序之前,我认为our是一个包范围变量和 my
一个文件范围变量。但是,在执行该程序之后,我感到困惑。

我的程序是,

#!/usr/bin/perl

use strict;
use warnings;

package one;
our $val = "sat";
my $new = "hello";
print "ONE:val =>$val \n";
print "ONE:new =>$new \n\n";

package two;
print "TWO:val =>$val \n";
print "TWO:new =>$new \n";

哪个输出
ONE:val =>sat 
ONE:new =>hello

TWO:val =>sat
TWO:new =>hello

那么, my 和有什么区别?和 our .两者是一样的还是有区别的?

最佳答案

如您所见,myour有词汇作用。
my创建一个词法范围的变量。
our创建一个词法作用域 别名 到一个包变量。

就因为你说package绝不会改变词法范围,因此您的 $val仍然是 $one::val 的别名即使在看过 package two 之后陈述。

如果您没有看到关闭的 curl ,则您的范围还没有完成。 (或字符串中的 EOF 或字符串结尾 eval )。

关于perl - my 和 our 之间的区别? (在同一个文件中声明),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10719918/

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