use strict;
use warnings; # you left this out
my $file = "controls.txt";
open (my $fh, '<', $file) or die "Can't open $file for read: $!";
# Don't use two-arg open unless you know why, and use
# lexical filehandles unless you know of a reason not to.
my %seen;
while ( <$fh> ) {
$seen{$_} = 1;
# Later assignments to an identical key
# overwrite earlier ones, so there's really
# no need to check if all you want is uniqueness.
}
my @unique = keys %seen;
print @unique;
####
perl -le '$seen{$_}++ while <>; print keys %seen;'
####
perl -lE'$s{$_}++for<>;say keys%s'