我知道如何轻松拆分字符串并将条目放入数组,但在这种情况下,我还需要将它们全部递减 1。我可以这样做:
my @valueArray = ();
my $values = "1,7,30";
push @valueArray, split(/,/, $values);
for (my $i = 0; $i < scalar(@valueArray); $i++) {
$valueArray[$i]--;
}
但是这个 beeing perl 似乎应该有一个更短的方法来在拆分和推送之间做到这一点。有没有,或者我应该停止打高尔夫球而去 for 循环?
最佳答案
这个怎么样?
my $valuesSource = "1,17,30";
my @decrementedValues = map { $_ - 1 } split /,/, $valuesSource;
这里不需要递减;事实上,当其内部 block 更新原始数组元素的值时,很少应该使用 map
- 反之亦然。 )
关于perl - 我可以在递减值的同时推送到数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359161/