use strict; use warnings; open (FH1, "file1"); open (FH2, "file2"); my ($code, $event, $line); my %data; while () { chomp; # assigning code. $code = $_; while ( ) { chomp; if ( $_ =~ /\-$code\-/ ) { $line = $_; while ( $line !~ /Event id (.*)/ ) { $line = ; chomp; } if ( $line =~ /Event id (.*)/ ) { $data{$code} = $1; } } } seek(FH2,0,0); } print "OUTPUT"; print %data;