Perl不重复的文件行输出
在日常的文本处理中,有时候要输出唯一的行,这种工作有多种方法实现...以下是一种:
my %hash;
while () {
chomp;
if (defined $hash{$_}) {
$hash{$_} = undef; #重复?
next;
}
$hash{$_} = [$_, $.];
}
my @uniq = grep defined, values %hash; #过滤到重复的
@uniq = sort {$a->$b->} @uniq; #按保存的顺序排序
say $_-> for @uniq
这是来自CU 的一个代码,比较的简单,故贴在这里,供观赏。
还有一例:
my @x=(1,2,3,2,1,4);
my %hash;
$hash{$_}++ for @x;
for (@x) {
print if $hash{$_} < 2;
}
页:
[1]