in reply to How can I keep the first occurrence from duplicated strings?

You can still use a hash, but you have to check whether the key already exists before setting the value.
#!/usr/bin/perl use warnings; use strict; my %seen; while (<DATA>) { my ($name, $count) = split; $seen{$name} = $count unless exists $seen{$name}; } print "$_ $seen{$_}\n" for keys %seen; __DATA__ nick 5 nick 10 nick 20 john 78 erik 9 erik 12

If you want to store the values in an array, use

push @keep, $_ unless $seen{$name}++;

Or, you can print the lines directly:

print unless $seen{$name}++;

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]