Chinaunix

标题: 有关hash引用,谁能解释一下这句,谢谢! [打印本页]

作者: 54red    时间: 2015-07-23 13:54
标题: 有关hash引用,谁能解释一下这句,谢谢!
push @{$hash{$data[3]}{$data[0]}},($data[1],$data[2]);

data
chr1        1959561        1959766        GABRD
chr1        1960516        1960731        GABRD
chr1        1960946        1961229        GABRD
chr1        1961381        1961774        GABRD
chr1        2160171        2161215        SKI
chr1        2234381        2234584        SKI
chr1        2234681        2234873        SKI
chr1        2235241        2235590        SKI

作者: MMMIX    时间: 2015-07-23 14:05
本帖最后由 MMMIX 于 2015-07-23 14:07 编辑

回复 1# 54red


    使用 Data::Dumper 把 %hash 打印出来看看, 再结合 perlref 你就理解了.
作者: 54red    时间: 2015-07-23 16:05
楼上的是自学的好方法,不过我还是希望有高人指点一下!
作者: substr函数    时间: 2015-07-23 16:40
本帖最后由 substr函数 于 2015-07-23 17:35 编辑

回复 3# 54red


不过我还是希望有高人指点一下!

MMMIX就是高人
高人已经指点了两下了
作者: MMMIX    时间: 2015-07-23 17:24
回复 4# substr函数


    我就一业余票友.
作者: zhlong8    时间: 2015-07-23 20:20
push 的第一个参数必定是有 @ 开始的一个数组,不管是引用还是变量。所以 $hash{$data[3]}{$data[0]} 的值必然是个数组的引用, $hash{$data[3]}->{$data[0]} 这就是个两层的 hash  啊, -> 可以省略
作者: 54red    时间: 2015-07-24 17:23
小白第一次看没明白意思,现在知道了,这个方法确实好用!多谢!回复 2# MMMIX


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2