gpt4 book ai didi

perl - 在数组中如何使用perl检查列表元素的最大大小

转载 作者:行者123 更新时间:2023-12-02 06:50:48 26 4
gpt4 key购买 nike

my @str = qw /(I) (II) (XIII) (IV)/;
my @max = map { my $len=0; if(length($_)>$len){ $len = length($_);} } @str;
print $max;

输出为(XIII),长度为5

能否请你纠正我在上面的代码中做错的地方。

最佳答案

要回答标题中的问题,更清晰的选择是将其委托(delegate)给 List::Util::max :

use List::Util 'max';
print max map { length } @str;

问题中的代码片段的问题是 $len 对于 map block 的每次迭代都是局部的,因此实际上它被重置为零六次。这样做的最终结果是 $len 将对应于 @str 中最后一项的长度,这就是为什么它不符合您的预期。你可以

my $len=0;
my @max = map { $len = length if $len < length } @str;
print $len;

但如果您没有有意义地使用 @max 做任何其他事情,那就太糟糕了。

关于perl - 在数组中如何使用perl检查列表元素的最大大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45077378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com