use strict; use warnings; my $fileText; do {local $/; $fileText = }; my $rxOK = qr {(?xms) ^First\sName (?=.*?^Last\sName) }; print $fileText =~ $rxOK ? qq{File OK\n} : qq{File BAD\n}; __END__ ..... First Name ..... ..... Last Name ..... #### my $fCnt = $fileText =~ /First\sName/g; die qq{"First Name" occurs more than once\n} if $fCnt > 1; my $lCnt = $fileText =~ /Last\sName/g; die qq{"Last Name" occurs more than once\n} if $lCnt > 1; #### my @fCnt = $fileText =~ /First\sName/g; die qq{"First Name" occurs more than once\n} if @fCnt > 1; my @lCnt = $fileText =~ /Last\sName/g; die qq{"Last Name" occurs more than once\n} if @lCnt > 1;