I have amended my program to take care of this:
Just add and delete the last lines of the DATA section to see the various possibilities.use Modern::Perl '2014'; my $first = qr/STRING/; my $second = qr/MAGIC/; my $first_pos; my $first_sub_pos; my $second_pos; my $second_sub_pos; while (<DATA>) { do { $first_pos = $.; $first_sub_pos = $-[0] } if /$first/; do { $second_pos = $.; $second_sub_pos = $-[0] } if /$second/; } if ( $first_pos and $second_pos > $first_pos ) { say "Success! STRING at $first_pos followed by MAGIC at $second_po +s"; } elsif ( $first_pos and $second_pos == $first_pos and $second_sub_pos > $first_sub_pos ) { say "Success! STRING (char: $first_sub_pos) followed by MAGIC (char: $seco +nd_sub_pos) at $first_pos"; } else { say "Failure! (STRING: $first_pos / $first_sub_pos - MAGIC: $second_pos / +$second_sub_pos)"; } __DATA__ First line second line here is the STRING empty text the STRING again! followed by the MAGIC word more emptiness Oh no! the first STRING again sadness did we look in vain? Ah, STRING and MAGIC success MAGIC and STRING failed
CountZero
A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James
My blog: Imperial DeltronicsIn reply to Re^3: Detect Two Strings in File
by CountZero
in thread Detect Two Strings in File
by omegaweaponZ
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |