我有两个数组@input0和@input1.我想要一个遍历每个值的for循环,@input1如果值存在@input0,则值保存在一个新数组中@input.
所有数组仅包含数字.每个数组元素最多有10个数字(见下文):
@input0 = {10061 10552 10553 10554 10555 10556 10557 10558 10559 10560, 10561 10562 10563 10564 10565 10566 10567 10573 10574 10575, ...}
@input1 = {20004 20182 ...}
Run Code Online (Sandbox Code Playgroud)
在Perl中实现这一点的最简洁和惯用的方法不是通过使用"for"循环而是map和grep
my %seen0 = map { ($_ => 1) } @input0;
my @input = grep { $seen0{$_} } @input1;
Run Code Online (Sandbox Code Playgroud)
如果您特别想要一个for循环,请解释为什么map/grep方法不起作用(除非它是一个功课,在这种情况下,问题应该被标记为一个)
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |