#!/usr/bin/perl use strict; use warnings; my %seen_words; while (){ if (!m/^(\S+)/){ die "Invalid line: $_"; } my $first_word = $1; if (!$seen_words{$first_word}){ print; $seen_words{$first_word} = 1; } } __DATA__ MA01001A1A03.f1 760 5640111 ad1 MA01001A1A03.f1 760 42572233 ubq MA01001A1A04.f1 300 15232924 ubq MA01001A1A04.f1 300 145334669 DNA MA01001A1B22.f1 580 77745475 ra MA01001A1B22.f1 580 30409730 ra #### while (){ if (!m/^(\S+)/){ die "Invalid line: $_"; } print unless $seen_words{$1}++; }