大佬教程收集整理的这篇文章主要介绍了在Perl中,local()可以创建一个变量吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
local
不会创建变量,而是在现有变量上运行.
我在下面有一小段代码,我想知道当没有创建这样的变量时本地是如何工作的.
#use Strict; #use warnings; &func; sub func{ local $temp = 20; print $temp; }
local设置包变量的范围.声明此“动态”作用域时,Perl使用您设置的临时值,直到作用域结束.与其他包变量一样,Perl在您第一次使用它们时会创建它们.您可以先在本地使用它,但不会影响它.
许多试图回答你问题的人立刻唠叨你严厉.这是一个编程辅助工具,它可以帮助您通过强制声明要使用的所有变量来错误输入变量名.当您使用未声明的变量名时,它会停止编译您的程序.你可以使用VArs pragma,my,state或者我们的:
use vars qw($temp); our $temp; my $temp; state $temp;
正如你所见,本地不是其中的一部分.为什么?因为那就是它的样子.如果不同的话,我会更喜欢它.
如果使用完整的包规范,严格不会抱怨,例如$Foo :: Bar :: temp.你可以错误地输入所有这些,而不会注意到.
我主要保留我对Perl的特殊变量使用local,你不必声明.如果我想在子例程中使用$_,也许是为了使用默认使用$_的运算符,我可能会从本地$_开始:
sub something { local $_ = shift @_; s/.../.../; tr/.../.../; ...; }
我可能更频繁地使用本地输入记录分隔符,@R_239_9447@使用不同的行结尾而不影响之前的可能:
@H_730_4@my $data = do { local $/; <FILE> };那些工作是因为隐含的第一次使用那些你没见过的变量.
否则,我可能希望将变量设置为其子例程的私有,因此子例程之外的任何内容都无法看到它.在这种情况下,我不希望程序的其余部分可以读取或写入的包变量.这是我变量的工作:
sub something { my $temp = ...; }
编程的诀窍是限制你想要的东西.如果您的程序的其余部分无法查看或更改变量,那么我就是您的选择.
我解释这是Learning Perl并在Mastering Perl中写了包变量的细节.
以上是大佬教程为你收集整理的在Perl中,local()可以创建一个变量吗?全部内容,希望文章能够帮你解决在Perl中,local()可以创建一个变量吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。