关于perl 的一种复杂数据结构的分析问题

关于perl 的一种复杂数据结构的分析问题

my %aa = (aaa => 'AAA', bbb => 'BBB');
my @bb = @aa{'aaa','bbb'};

然后 @bb 数组的里面,就是 ('AAA', 'BBB') 了。

这个一直弄不太懂, %aa 是个hash ,  用 @aa{‘key1’, 'key2'} 这样的方式  , 怎么就正好得到了他的values 呢?  查了perl 里面对hash 和数组的定义和使用, 没看到有相关的介绍啊 ? 请高人指点一下, 谢谢!
my %aa = {key1 =>'value1',  key2=>'value2'};
@{$aa}{'key1', 'key2'}
my %aa;
用 @aa{key}  就可以访问到 hash 里面某个key 的value 了,如果想取得一个 hash 里面某几个key 的value 和合集, 就可以用这种方法,@aa{key1, key2, key3}   但%aa 是个hash 啊,怎么想, 也没想通, perl 是怎么用 hash 和数组的概念来推导出来, 得到这样的使用方法的。
这不是复杂数据结构,这是 hash slice。
恩, 题目有点不准确, 应该是 hash数据集的一种解析方式, 或者hash 的一种用法? 总之。。。, 什么是 hash slice?
小骆驼第四版中文241页
唉, 我书只有电子的,没有页数哦  ,听说海图对面有卖小骆驼的, 我明天去看看


QUOTE:
原帖由 xhaooo 于 2008-5-25 23:30 发表
唉, 我书只有电子的,没有页数哦  ,听说海图对面有卖小骆驼的, 我明天去看看

电子版 最后部分

最后一章最后一节

小骆驼很好买的。。而且很容易入门