多谢Sir Miao!

map的方法可以完成这个功能,我之前也没想到这个。

一个请教各位的进一步的问题是,代码:
2.   my $element2 = $ref_hash->{"b"};

可以利用hash表本身的特性取到其值,那么有没有别的方法(other than
map)可以利用hash本身的特性,对用引用指向的匿名hash取到一个参数数组对应的值?要求引用要带箭头表示:

1.   my ($e1, $e2) = @$ref_hash{"a","b"}; #这个方法没有问题,但是没有使用箭头,表述不清晰
2.   my @e = map {$ref_hash->{$_}} qw(a b);  #Sir Miao的方法,是通过map完成的
2.   ?  # $ref_hash->{qw(a b)} ?



2009/9/13 Miao ZhiCheng <[email protected]>

> On Sun, 2009-09-13 at 22:57 +0800, 杨杰 wrote:
> > 各位前辈:
> >
> > 大家好!初学perl,最近新加入perlChina社区。目前遇到一个关于散列的引用
> > 问题如下:
> >
> > 对于一个散列的引用,如果要取出其中一个键的值,我们可以如下操作:
> > my $ref_hash = {"a"=>1, "b"=>2, "c"=>3,};
> >
> > 1.   my $element = $$ref_hash{"a"};
> > 或
> > 2.   my $element2 = $ref_hash->{"b"};
> >
> > 但是我希望通过一个参数数组取出多个值,现在已经可以的是下面的用法:
> > 1.   my ($e1, $e2) = @$ref_hash{"a","b"};
> >
> > 但毕竟这样表述比较混乱,请教前辈们是否可以通过指针方式达到这种(通过多
> > 个键获取对应值的数组的)效果?我用了很多种方法也不行~
>
> 这个语法如何:
>
> my @e = map {$ref_hash->{$_}} qw(a b);
>
> --
> ZC Miao ([email protected])
> Blog http://hellwolf.cublog.cn
>
> gpg --keyserver pgp.mit.edu --recv-key 0x6B174C6F
>
> Every day it's the same thing -- variety.  I want something different.
>
>
> >
>


-- 
Yang Jie(杨杰)
Group of MRMSS, Xi'an Jiaotong University
Department of Computer Science and Technology, Xi’an Jiaotong University

hi.baidu.com/thinkdifferent
PHONE: 86 1346888 3723
TEL: 86 29 82665263 EXT. 24
MSN: [email protected]

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。
 要在此论坛发帖,请发电子邮件到 [email protected]
 要退订此论坛,请发邮件至 [email protected]
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

回复