我有一个数组@vector_count。
情况1:大多数时候加载的值如下:
my @vector_count = (124130,893187,275917,601123);
情况2:在某些情况下,它获得的值如下:
my @vector_count = (151625,151625,1790345,1790345,158384,158384,58837,58837,308533,308533);
在这种情况下,我需要确保重新安排省略重复项:例如
my @vector_count = (151625,1790345,158384,,58837,308533);
情况3:可能存在某种情况,例如任何实际值可能重复(不是全部)。在这种情况下,不应该删除该值,认为它是重复的:
my @vector_count = (151625,1790345,58837,58837,308533);
如何包含所有3种情况。
答案 0 :(得分:0)
听起来您有一个非常具体的用例要检测。如果所有数组元素都与副本配对,那么您希望删除相邻的副本。否则,您希望单独保留阵列。
use strict;
use warnings;
my @vector_count = (151625,151625,1790345,1790345,158384,158384,58837,58837,308533,308533);
# Detect universal adjacent duplicates
if (! grep {($_ % 2) == 0 && $vector_count[$_] ne $vector_count[$_ + 1]} (0..$#vector_count)) {
@vector_count = @vector_count[grep {$_ % 2} (0..$#vector_count)];
}
print "@vector_count\n";
输出:
151625 1790345 158384 58837 308533