in.txt __DATA__ 13454 34456 1342 5667 987 3354 145 #### use strict; use warnings; my @array; # contains numbers (1..1000000) ~ 400000 numbers my @array1 = sort @array; # sort it to speed up the process?? open (in , "<", "in.txt") || die "$!"; while(){ m/^(\d+)/; my @a = grep {$_ == $1} @array1; print "@a, " if (@a); } close in;