Perl 如何获得变换数组的最大值
新手警报。以下是:Perl 如何获得变换数组的最大值,perl,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 } ,
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
我做错了什么?从
列表::MoreUtils
文档中看不太清楚,但您必须在代码块中分配给$\uuuu
,以获得要传播的值。因此,将代码块更改为{$\=length${name}}
,它就可以工作。在这种情况下,您不需要应用
,因为length
不会修改列表项:
print max map { length $_->{name} } @list;