首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Perl中使用"my“关键字?

如何在Perl中使用"my“关键字?
EN

Stack Overflow用户
提问于 2014-01-02 18:43:44
回答 3查看 93.6K关注 0票数 101

在例如Perl脚本中,我一直在变量名前面看到my关键字,但我不知道它意味着什么。我试着在网上阅读手册页和其他网站,但我很难分辨它的用途,因为我认为它的用途与手册不同。

例如,它用于在本文中获取数组的长度:在Perl中查找数组的大小

但手册上说:

my将列出的变量声明为封闭块、文件或eval的本地变量(在词汇上)。如果列出了多个值,则必须将列表放在括号中。

它是做什么的,它是如何使用的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-02 20:00:05

my限制变量的作用域。变量的作用域是可以看到的地方。将变量的范围缩小到需要变量的地方是良好编程的一个基本方面。它使代码更具可读性,减少了错误的发生,并带来了一系列的好处。

如果不使用my声明变量,则将创建一个全局变量。这是要避免的。使用use strict;告诉Perl不要隐式地创建全局变量,这就是为什么您应该始终在程序中使用use strict; (和use warnings;)。

相关阅读:

票数 153
EN

Stack Overflow用户

发布于 2014-01-02 18:46:46

快速总结:my创建了一个新变量,local临时修改了变量的值

在下面的示例中,$::a引用了“全局”命名空间中的$a。

代码语言:javascript
运行
复制
$a = 3.14159;
{
  my $a = 3;
  print "In block, \$a = $a\n";
  print "In block, \$::a = $::a\n";
}
print "Outside block, \$a = $a\n";
print "Outside block, \$::a = $::a\n";

# This outputs
In block, $a = 3
In block, $::a = 3.14159
Outside block, $a = 3.14159
Outside block, $::a = 3.14159

ie,local暂时更改变量的值,但只在它存在的范围内。

来源:id=94007

更新

关于ourmy的区别,请参阅

(感谢ThisSuitIsBlackNot)。

票数 31
EN

Stack Overflow用户

发布于 2014-01-02 18:47:30

私有变量通过my()my的主要文档。

在您提到的数组大小示例中,它不用于查找数组的大小。它用于创建一个新变量来保存数组的大小。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20889609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档