#!usr/bin/perl use Data::Dumper qw(Dumper); open(DATA,"/something/something/something") || die("Couldnt open the file \n"); while() { if(/^\s*CARS\s*[A-Z]/) { ($car)=$_=/^\s*CARS\s*(\w+)/; push(@car_list,$car); } } foreach $one_car(@car_list) { open(DATA,"/something/something/something")|| die("Couldnt open the file \n"); while() { if(/^\s*CARS\b$one_car\b/) { last if/\*\.(\w+)/; $/="*"; $data_next=; print"$data_next\n"; $/="\n"; } } }