my @output = (); while(){ next unless (m/DATA/); my $line = $_; while($line=~m/(DATA\d+)/g){ push @output,$1; } } print join qq|,|, map {qq~xxx=$_~} @output; print qq|;\n|; 1; __END__ TABLE NAME HEAD0 HEAD1 HEAD2 DATA00 DATA10 DATA20 DATA01 DATA11 DATA21 END #### xxx=DATA00,xxx=DATA10,xxx=DATA20,xxx=DATA01,xxx=DATA11,xxx=DATA21;