Perlでファイル内の重複行を削除して表示したい場合、リスト内の同じ値を取り除く場合同様、
ハッシュを使えば簡単にできます。
del_dup.pl
my %hash = ();
while(<>) {
print unless $hash{$_}++;
}
ファイル(happybirthday.txt)で実行した結果
% cat happybirthday.txt
Happy Birthday to You!
Happy Birthday to You!
Happy Birthday Dear Tux!
Happy Birthday to You!
Happy Birthday Dear Tux!
% del_dup.pl happybirthday.txt
Happy Birthday to You!
Happy Birthday Dear Tux!
ファイル内容をソートして、重複行を削除する場合、UNIXコマンドでもできる。
sort happybirthday.txt | uniq
もしくは
sort -u happybirthday.txt
Perlばかり触っていると、全てPerlでやろうとしてしまいます。
一歩外から見ると、他の言語やコマンドの方が簡単にできたりします。
選択肢を数多く持つのが重要ですね。
関連書籍
初めてのPerl 第5版/Randal L. Schwartz

¥3,780
Amazon.co.jp
初心者にもわかりやすく書かれていますが、
全くの初心者というより、少しPerlに慣れてきた時に威力を発揮する本です。
簡単なテキスト操作のためにPerlを使用するのであれば十分事足ると思います。
プログラミングPerl〈VOLUME1〉/ラリー ウォール

¥5,565
Amazon.co.jp
ページ数も多く、価格もそれなりなので、Perlについて詳しく知りたい人向けです。
"初めてのPerl"と重複する箇所も多々あるので、これからがっちりPerlを身につけたい人は
こちらをおすすめします。