http://www.perlmonks.org?node_id=1074416


in reply to Re: Reading file and matching lines
in thread Reading file and matching lines

Apologies, Yes there are several instances of this in a single file, so I need to do this through out the file and only report any errors if there are any. If none the script should exit normally.

Replies are listed 'Best First'.
Re^3: Reading file and matching lines
by karlgoethebier (Abbot) on Feb 11, 2014 at 13:45 UTC
    "...only report any errors if there are any"

    If so, why not something simple like this:

    while (<IN>) { print qq($1\n) if /^(E)/; print qq($1\n) if /^(G)/; die $1 if /^(h)/; }

    Or do i still misunderstand the specs?

    Best regards, Karl

    «The Crux of the Biscuit is the Apostrophe»

Re^3: Reading file and matching lines
by GotToBTru (Prior) on Feb 11, 2014 at 14:23 UTC
    use strict; use warnings; my $infile = shift; my $found_E = 0; my $sets = 0; open my $ifh, '<', $infile; while(<$ifh>) { if (/^E/) { $found_E = 1; next; } if ($found_E) { if (/^G/) { $sets += 1; $found_E = 0; next; } if (/^h/) { print "Error! Found h before G\n"; exit; } } } close($ifh); printf "Found %d sets from E to G uninterrupted by h\n",$sets;