我有以下文件:
a b 5
c d 6
e f 7
g h 4
i j 3
k l 10
我想在第三列中找到哪一行显示最小值并将其从初始文件中删除。在此之后,我想再次迭代程序并再次找到哪一行呈现最小值并将相同的东西再做 2 次。
输出文件应该是
c d 6
e f 7
k l 10
我尝试编写以下代码:
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
my $file1 = "try.dat";
open my $fg, "<", $file1 or die "Error during $file1 opening: $!";
my @vector;
while (<$fg>) {
push @vector, [ split ];
}
my $minimum = $vector[0][2];
my @blacklist;
for my $i (0 .. $#vector) {
if ($minimum > $vector[$i][2]){
$minimum = $vector[$i][2];
push @blacklist, @vector[$i+1];
}
}
#say "my minimum is $minimum";
#say "the blacklist is composed by @blacklist";
我不知道如何擦除包含的元素@blacklist
(在第一种情况下应该是i j 3
)以及如何迭代所有内容。
对迭代有什么帮助吗?