我有以下代碼。我試圖從@ 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