use strict; use warnings; my $contents; my $hi_from; my $hi_to; my $bye_from; my $bye_to; open (FH,"filename") or die ("Can't open"); while() { chomp($_); $contents.=$_; } ($hi_from=$contents)=~s/hi:\s+(\d*)/$1/; $hi_from=$1; ($hi_to=$contents)=~s/(hi:\s+)(?!.*hi:)(.*\d+)(?=.*bye:)/$2/; ($hi_to=$2)=~s/\d+//; $hi_to=~s/.*\s(\d+)/$1/; ($bye_from=$contents)=~s/bye:\s+(\d*)/$1/; $bye_from=$1; ($bye_to=$contents)=~s/(bye:\s+)(?!.*bye:)(.*\d+)/$2/; ($bye_to=$2)=~s/\d+//; $bye_to=~s/.*\s(\d+)/$1/; print "\n\n\nHi From: $hi_from\n"; print "Hi to: $hi_to\n"; print "Bye from: $bye_from\n"; print "bye to: $bye_to\n";