use warnings; use strict; my $counter = 0; my %hash; while () { my @splits = split; my $snp = $splits[0]; $counter++ if not exists $hash{$snp}; print "$counter $snp\n"; $hash{$snp}++; } __DATA__ foo abc foo cde bar xyz #### 1 foo 1 foo 2 bar