#!/usr/bin/perl -w use strict; my %record; while (my $line = ) { $line =~ s/\s+$//; #see [cdarke]'s comment, this #also does chomp at same time $record{$line}=1 if ( $line ne ""); #comparison allows "zero" #$record{$line}++ if ( $line ne ""); #is also ok too. But I didn't #think that you needed count } my @record = sort keys %record; #sort keys %record is a list and can just be assigned to an #array variable, which appears to be what you want as result. #note that in Perl, the identifier "record" can be used both as #an array(@record) and as a hash(%hash). print "@record"; #prints: a b c d __DATA__ a b c d a a c d c