如何获得最大的变换数组

时间:2016-03-10 15:51:43

标签: perl

新手提醒。以下内容:

use List::Util qw(max);
use List::MoreUtils qw(apply);

my @list = ( 
        { 'name' => 'foo' , 'value' => 3 } , 
        { 'name' => 'bar' , 'value' => 31 } , 
        { 'name' => 'longname' , 'value' => -33 } , 
        { 'name' => 'grill' , 'value' => 333 } , 
        );

 print max apply { length $_->{name} } @list;

输出,

HASH(0x2e47c28)

而不是8

我做错了什么?

2 个答案:

答案 0 :(得分:4)

在这种情况下您不需要apply,因为length不会修改列表项:

print max map { length $_->{name} } @list;

答案 1 :(得分:2)

List::MoreUtils文档中的内容并不十分清楚,但您必须在代码块中分配$_以获取值传播出去。因此,将代码块更改为{ $_ = length $_->{name} }并且它可以正常工作。