in reply to Reading file and matching lines
In Perl, you can read a file line by line without the need to load the whole file first. Use the diamond operator in a while loop (untested code):
open my $IN, '<', 'quoteout.dat' or die "$!"; my $searching_for_G; while (<$IN>) { $searching_for_G = 1 if 0 == index $_, 'E'; die "Error: h at line $." if $searching_for_G and 0 == index $_, ' +h'; if ($searching_for_G and 0 == index $_, 'G') { print "Found G at line $.\n"; undef $searching_for_G; } }
Note that unlike in C, a string is not an array of characters in Perl (that's why I used index). Also, you did not specify what to do if G is found - should the program end or search for another E? I assumed the latter.
$. contains the input line number. See perlvar for details.
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Reading file and matching lines
by robby_dobby (Hermit) on Feb 11, 2014 at 12:56 UTC | |
Re^2: Reading file and matching lines
by Jalcock501 (Sexton) on Feb 11, 2014 at 13:26 UTC | |
by karlgoethebier (Abbot) on Feb 11, 2014 at 13:45 UTC | |
by GotToBTru (Prior) on Feb 11, 2014 at 14:23 UTC |
In Section
Seekers of Perl Wisdom