use DB_File; tie my %uniq, "DB_File", "/tmp/uniq"; # you should use File::Temp here! $uniq{$_} = 1 for @data; my @uniq = keys %uniq;