Ну вот как-то так.
#! /usr/bin/perl -w
if( !$ARGV[0] ) {
die "Usage: $0 <file>\n";
}
open FILE, $ARGV[0] or die "Can't open $ARGV[0]: $!\n";
while(<FILE>) {
push @old, $_;
}
close FILE;
unlink $ARGV[0];
for($i=0; $i<@old; $i++) {
push @new, $old[$i];
if( $i ) {
$del=0;
for($j=0; $j<@new-1; $j++) {
if( !$del && $old[$i] eq $new[$j] ) { $del=1; }
}
if( $del ) { pop @new; }
}
}
open FILE, ">$ARGV[0]" or die "Can't open $ARGV[0]: $!\n";
print FILE @new;
close FILE;