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 <hellwolf.misty@gmail.com>
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 (hellwolf.misty@gmail.com)
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: xtyangjie2004@yahoo.com.cn
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论