我有以下代码。我试图从@ arr2和@ arr4中打印所有常见值而不重复。预期产出应为5,6,7,8,9,13,14,15,16,17,18。我没有得到如何在循环中放置条件以避免重复以及为什么$ i不在此代码中打印。如何在不重复的情况下打印两个不同重叠范围的公用值
#!/usr/bin/perl
my @arr2 = (1 .. 10, 5 .. 15, 10 .. 20);
my @arr4 = (5 .. 9, 13 .. 18);
foreach my $line1 (@arr2) {
my ($from1, $to1) = split(/\.\./, $line1);
#print "$to1\n";
foreach my $line2 (@arr4) {
my ($from2, $to2) = split(/\.\./, $line2);
for (my $i = $from1; $i <= $to1; $i++) {
for (my $j = $from2; $j <= $to2; $j++) {
if ($i == $j) {
print "$i \n";
}
}
}
}
}
子内容也可以写为'打印 “$名:@arr \ n”;' – 2014-10-11 19:56:10
像评论说,TMTOWTDI 。但我同意。 – 2014-10-11 19:57:43