in reply to exiting loops

You have three problems that I can see.

You're only putting the contents of a line into $type once, before the loop. Get rid of the my $line and the my $type at the very beginning.

You don't appear to understand the purpose of last. It will exit your while loop, not the if, so you only go through the loop once. You don't need the two instances of last at all.

Doing while (<DATA>) as you do, each line will be in $_, which you can then check easily with a regex like this:

if(/^10/){ print OUT "\n"; }

or even shorter:

print OUT "\n" if /^10/;

Then you do the line:

print OUT "$_\n";

just once, for both cases. Remember the line is in $_

So now your while loop looks like this:

while(<DATA>){ chomp; print OUT "\n" if /^10/; print OUT "$_\n"; }

TheEnigma