这段代码片段究竟是什么?
问题描述:
这段代码片段究竟是什么?这段代码片段究竟是什么?
...
method go() {
my %args;
while (ref($_[0]) eq 'HASH') {
%args = (%args, %{ shift(@_) });
}
....
}
从驼鹿基于包装中取出...
虽然第一个参数是hashref,怎么办呢? (与移出hashref?) 我明白移(@_)根本不明白什么意思
%hash = (%hash, %{$hashref});
答
虽然@_
的第一个元素是一个散列的引用,即哈希引用的内容添加到散列%args
并从@_
中删除引用。换句话说,将所有初始散列参数合并到一个散列中。
%a = (%a, %b)
对于一些对散列%a
和%b
的类似于@a = (@a, @b)
对于一些对阵列@a
和@b
,接合@a
和@b
成单个列表,并分配所述结果返回给@a
的。对于阵列来说,当然这只是一个简写push @a, @b
。
另请注意,除了'method'关键字之外,我假设MooseX :: Declare,在这段代码中没有特定的Moose。 – perigrin 2011-05-27 18:36:43