【发布时间】:2019-02-20 03:35:02
【问题描述】:
我一直在尝试编写以下代码,它最终返回列表中具有奇数和的数字的数组索引。
my @input_numbers = (1,2,4,8,16,32,64);
my @indices_of_odd_digit_sums = grep {
my $number = $input_numbers[$_];
my $sum;
$sum += $_ for split //, $number;
$sum % 2;
} 0..$#input_numbers;
print "@indices_of_odd_digit_sums";
我认为脚本正在使用 $input_numbers[$_],因为 grep 将数组索引 (0..6) 放入 $_
这样 $number 被分配了列表项的实际值。
我有点不确定$_ 是什么:
$sum += $_ for split //, $number;
$_ 现在是实际数字中的每个数字吗?所以对于 16,它是先 1,然后是 6。我不熟悉 'for split' 语法。
感谢您提供的任何帮助
约翰
【问题讨论】:
-
还有perlmonks.org/?node_id=322751,虽然有很多题外话