#! perl -slw use strict; sub dedup { my $ref = shift; my ($r, $l, %h); $r=$l=0; while( $r < @$ref ) { if ($h{$ref->[$r]}++) { # already seen ++$r; } else { # not yet seen. Copy! $ref->[$l++]= $ref->[$r++]; } }