Perl不重複的文件行輸出

在日常的文本處理中,有時候要輸出唯一的行,這種工作有多種方法實現...

以下是一種:

my %hash;
while (<>) {
    chomp;
    if (defined $hash{$_}) {
        $hash{$_} = undef;    #重複?
        next;
    }
    $hash{$_} = [$_, $.];
}

my @uniq = grep defined, values %hash;         #過濾到重複的
@uniq = sort {$a->[1] <=> $b->[1]} @uniq;    #按保存的順序排序
say $_->[0] for @uniq

 

這是來自CU 的一個代碼,比較的簡單,故貼在這裏,供觀賞。

 

還有一例:

my @x=(1,2,3,2,1,4);

my %hash;

$hash{$_}++ for @x;

for (@x) {

print if $hash{$_} < 2;

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章