免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3756 | 回复: 4
打印 上一主题 下一主题

请教:子程序中定义的匿名数组是不是全局变量? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-09 16:50 |只看该作者 |倒序浏览
子程序中的匿名数组是全局的,还是局部的?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-03-10 09:12 |只看该作者

请教:子程序中定义的匿名数组是不是全局变量?

要看你怎麼用他..anonymous只是回傳一個reference....
有空看一下perldoc perl
裡面有些不錯的online document看一下吧
...

论坛徽章:
0
3 [报告]
发表于 2003-03-10 22:55 |只看该作者

请教:子程序中定义的匿名数组是不是全局变量?

举个例子
sub test
{
   my $var=[1,2,3];
   return $var;
}
匿名数组[1,2,3]所占据的内存块由谁管理,什么时候释放?
我刚学perl,变量所占的内存不是自己管理,要从c的模式里
转过来,有点晕。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-03-11 01:25 |只看该作者

请教:子程序中定义的匿名数组是不是全局变量?

俺也是新手,觉得my 的东西就不会在外边有效了

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-03-11 09:05 |只看该作者

请教:子程序中定义的匿名数组是不是全局变量?

sub test
{
my $var=[1,2,3];
return $var;
}

這個情況下.. $var本身會消失..但是他帶的ref to [1,2,3]
會被回傳....也就是說我用
$a = &test; 可以用
@{$a} 去得到所有的數值...

這在perl裡面是特別的例子.....:)
只有在my 宣告的變數被回傳時,這種情形下
my $var,才能存在於scope外...

perl的相關書籍都會對此有所著墨....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP