+ -
当前位置:首页 → 问答吧 → perl 子函数 为什么要这样取哈希值

perl 子函数 为什么要这样取哈希值

时间:2010-12-22

来源:互联网

比如哈希
sub c
{
my $b=shift;    --------------------->请问为什么这里要用shift?
do something...
}
%a={ a=>1,b=>2,c=>3);
&c(\%a)

作者: ztj2247   发布时间: 2010-12-22



QUOTE:
比如哈希
sub c
{
my $b=shift;    --------------------->请问为什么这里要用shift?
do something...
...
ztj2247 发表于 2010-12-22 20:32




    等同于 my $b = shift @_;
取第一个参数。

作者: 兰花仙子   发布时间: 2010-12-22



QUOTE:
等同于 my $b = shift @_;
取第一个参数。
兰花仙子 发表于 2010-12-22 20:36




    例子中 实际是取 %a 整个哈希吗 还是只取了 %a中的 a=1 部分呢

作者: ztj2247   发布时间: 2010-12-22



QUOTE:
例子中 实际是取 %a 整个哈希吗 还是只取了 %a中的 a=1 部分呢
ztj2247 发表于 2010-12-22 20:37




    取整个hash的引用。
perldoc perlsub

作者: 兰花仙子   发布时间: 2010-12-22

%a={ a=>1,b=>2,c=>3); 这里应该是 %a = (a=>1,b=>2,c=>3); 传入函数的是这个 hash 的引用,是个 scalar 。

作者: zhlong8   发布时间: 2010-12-23