Perl - my, local, our (最近在学perl)

最近碰到了Perl - my, local, our 这个问题,收集了下!

首先给出一个摘录过来的实例,运行完后自己仔细看看就知道my和local的区别了,实例后没懂得我在分析。

##############################################
#!/usr/bin/perl
# not strict clean, yet, but just wait
$global = "I'm the global version";
show_me('At start');
lexical();
localized();
show_me('At end');
sub show_me
{
my $tag = shift;
print "$tag: $global/n"
}
sub lexical
{
my $global = "I'm in the lexical version";
print "In lexical(), /$global is --> $global/n";
show_me('From lexical()');
}
sub localized
{
local $global = "I'm in the localized version";
print "In localized(), /$global is --> $global/n";
show_me('From localized');
}
##############################################

运行结果是
***************************************************
At start: I'm the global version
In lexical(), $global is --> I'm in the lexical version
From lexical: I'm the global version
In localized(), $global is --> I'm in the localized version
From localized: I'm in the localized version
At end: I'm the global version
***************************************************

分析:
1.my和local都只在一个block里有效,出去就失效
2.但是local的变量可以继续在这个block中调用的子程序中存在
3.如果有与外界同名的变量,两者在block退出后都不影响外界同名变量

our:

如果在一个block中有一个my修饰的变量和外界的一个变量同名,而且又需要在这个block中使用外接变量时,两个办法:
第一个办法,用main的package修饰这个变量名,$main::global
第二个办法,用our修饰,our $global,那么该block中接下来出现的所有$global都是外界的global

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值