これは便利!

これすごい。
こういうの思いつくようになりたいな。

@array = grep(!$count{$_}++, @array);


%count という(作業用)ハッシュを用意し、配列の要素をキーとしてその値をカウントアップする。
引数の @array を要素0から見ていき、その要素が初めての値の場合は、!$count{$_}が真となり
(インクリメントは評価の後)、grep の戻り値として判定され、結果、@array が受け取る。
2度目以降は、!$count{$_} が偽になるので、grep の戻り値にはならない。

よって、@array は重複行が削除された配列が入る。


ちなみに、$count{'要素名'} に、カウント数が代入されている。
重複数などをカウントする際は、こっちを使う。

http://www.jp-z.jp/perlmemo/list_duplicate_count.html