免费注册 查看新帖 |

Chinaunix

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

数组迷惑!请指教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-10 22:27 |只看该作者 |倒序浏览
#!/usr/bin/perl-w
@a=(1,2,3);
@b=(4,5,6);
sub addem
{
        my ($ref1,$ref2)=@_;
        while (@{$ref1}) {
                unshift @result, pop(@{$ref1})+pop(@{$ref2});#@{$ref1}不明白是什么意思
        }
        return @result;
}
@c=addem (\@a,\@b);
print join (',', @c);
蓝色的(@{$ref1}) 部分,这个是什么意思,书上没有介绍,不懂!而且为什么将它改成@ref1就不能运行了呢?
相同的问题还有一个
#!/usr/bin/perl -w
sub get
{
        @a=(1,2,3);
        @b=(4,5,6);
        return \@a,\@b;
}
($aref,$bref)=get;
print "@$aref\n"; #@$代表什么意思,不懂????
print "@$bref\n";
这个@$又是表示什么,为什么去掉$后就出错呢?
thanks

论坛徽章:
0
2 [报告]
发表于 2006-01-10 22:57 |只看该作者
@c=addem (\@a,\@b);
你这里调用addem时,是将2个数组的引用作为参数传递给它的。
所以在addem函数内部,要用@{$ref}这种方式对数组进行解引用,就是还原数组。
或者直接用@$ref也行。

论坛徽章:
0
3 [报告]
发表于 2006-01-11 08:32 |只看该作者
thank you!

论坛徽章:
0
4 [报告]
发表于 2006-01-15 15:41 |只看该作者
好象是在调用什么东西,我遇见过
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP