use strict; my %numbers; while () { $numbers{$1}++ if /^(\d+)/; } print "$_\n" foreach keys %numbers; __DATA__ 123askdjha 1ad asldhasd asdklsd123 10 2fer #### 1 2 10 123 #### use strict; my @numbers; while () { /^(\d+)/; push(@numbers, $1) unless grep(/^$1$/, @numbers) || $1 eq ''; } print "$_\n" foreach @numbers; __DATA__ 123askdjha 1ad asldhasd asdklsd123 10 2fer #### 123 1 10 2