#! 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