2008/11/22 owen nirvana <freeespeech@gmail.com>:
> 传递的参数是数组或者哈希的时候,怎么获取相关参数
>
以数组为参时:
sub func {
my @b = @_;
# ...
}
my @a = (1,2,3);
func(@a);
哈希为参时:
sub func {
my %b = @_;
}
my %a = (cat => 1, dog => 2);
func(%a);
这里的行为是哈希和数组会自动平展成 @_ 中的离散元素 :) 如果想避免,可以使用数组和哈希的引用,例如:
sub func {
my @b = @{ $_[0] }
# ...
}
my @a = (1,2,3);
func(\@a);
# OR func([1,2,3])
而对于哈希:
my func {
my %b = %{ $_[0] };
# ...
}
my %a = (cat => 1, dog => 2);
func(\%a);
# OR func( { cat => 1, dog => 2 } );
参数是否 slurpy 的行为在 Perl 6 中可以更优雅地控制。。。呵呵
Hope this helps :)
-agentzh
没有评论:
发表评论