免费注册 查看新帖 |

Chinaunix

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

哈希列表怎么存放数组? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-16 16:30 |只看该作者 |倒序浏览
本帖最后由 yisn 于 2015-09-16 16:30 编辑

大家好,我想用哈希表存放数组,但是却访问不到,麻烦帮忙看看,谢谢!
  1. @t=(1..4);

  2. my %tags=();
  3. $tags{'a'}=\@t; #存放数组地址
  4. print $tags{'a'}."\n";
  5. print 'aa='.@$tags{'a'}."\n"; #访问数组 (!!访问不了???)

  6. $a=\@t;
  7. print $a."\n";
  8. print "tt="."@$a\n"; #可以访问

复制代码
输出是:
ARRAY(0x1fa174c)
aa=
ARRAY(0x1fa174c)
tt=1 2 3 4

很奇怪的是,$tags{'a'}和$a都是保存@t的地址,可以看出地址也完全相同,但为什么 @$tags{'a'} 访问不到数组呢?
我要如何才能访问到哈希表中的a元素指向的数组?

谢谢!

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2015-09-16 16:33 |只看该作者
本帖最后由 MMMIX 于 2015-09-16 16:37 编辑
yisn 发表于 2015-09-16 16:30
print 'aa='.@$tags{'a'}."\n";


改为 print "aa=@{$tags{a}}\n";

访问单个成员用 $tags{a}->[0] 或 $tags{a}[0]

论坛徽章:
0
3 [报告]
发表于 2015-09-16 16:47 |只看该作者
MMMIX 发表于 2015-09-16 16:33
改为 print "aa=@{$tags{a}}\n";

访问单个成员用 $tags{a}->[0] 或 $tags{a}[0]


谢谢! 我也刚试出来,没想到这么快就有人回了。
还发现这两个输出还不一样,一个输出数组元素个数,一个输出数组。之前试的时候一直以为是错的,其实是我自己搞错了perl的输出。

print @{$tags{'a'}}."\n";
print "@{$tags{'a'}}\n";

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2015-09-16 17:39 |只看该作者
本帖最后由 MMMIX 于 2015-09-16 17:47 编辑

回复 3# yisn


一个是字符串连接,一个是字符串插值。

    字符串连接符提供的是 scalar context,array 在 scalar context 下返回的是其中元素的个数;这和 array 在字符串中插值的结果不同是自然的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP