gpt4 book ai didi

perl 结合 map 和每个

转载 作者:行者123 更新时间:2023-12-05 08:24:23 27 4
gpt4 key购买 nike

我只是想知道这是否可能:

use Modern::Perl;

my @list = ('a' .. 'j');

map { func($_) } each(@list);

sub func {
my ($index, $value) = @_;
say "$index => $value";
}

最佳答案

不,你不能,因为 each 每次被调用时都会返回一个键/值对。您只调用它一次,因此它会将 (0, $list[0]) 传递给 map,并且将为每个值调用一次子例程。

如果你想用你可以写的每个键/值对调用func

map { func($_, $list[$_]) } keys @list;

但这是对 map 的误用,因为它用于将一个列表映射到另一个列表。你应该像这样使用 for

func($_, $list[$_]) for keys @list;

你也可以像这样使用each

my ($i, $v);
func($i, $v) while ($i, $v) = each @list;

关于perl 结合 map 和每个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005367/

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