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