#! perl use strict; use warnings; use Data::Dump; my @array; while () { chomp; push @array, $_; } dd \@array; @array = clean(@array); # or clean(\@array); dd \@array; sub clean { my @array_with_duplicates = wantarray ? @_ : @{$_[0]}; my (@array_no_duplicates, %hash); for (@array_with_duplicates) { unless (exists $hash{$_}) { push @array_no_duplicates, $_; $hash{$_} = undef; } } return @array_no_duplicates if wantarray; @{ $_[0] } = @array_no_duplicates; } __DATA__ Frieda Adele Briony Hermione Cathy Dorothy Cathy Erin Ida Frieda Frieda Gertrude Hermione #### 22:14 >perl 890_SoPW.pl [ "Frieda", "Adele", "Briony", "Hermione", "Cathy", "Dorothy", "Cathy", "Erin", "Ida", "Frieda", "Frieda", "Gertrude", "Hermione", ] [ "Frieda", "Adele", "Briony", "Hermione", "Cathy", "Dorothy", "Erin", "Ida", "Gertrude", ] 22:14 >