alienhuman has asked for the wisdom of the Perl Monks concerning the following question:
Monks,
I've got a multi-line text file in the format:
I want to go line-by-line through the file, and grab the data in between @QUERY and @ENDQUERY and do stuff to it (namely put it in a HoH)."@QUERY:FOO" ...data... ...data... ...etc... "@ENDQUERY" "@QUERY:BAR" ...data... ...data... ...etc... "@ENDQUERY"
Here's the code block in question:
My question: why is $_ not getting the next line of FH in the 2nd while loop? The print statement I have there prints the first pattern matched (e.g. @QUERY:FOO, @QUERY:BAR) for each line of data enclosed by @QUERY/@ENDQUERY until it reaches @ENDQUERY.while (<FH>) { if ($_ =~ /^\"\@QUERY:(.*)\"/) { my $query = $1; my $i = 1; while (<FH> !~ /^\"\@ENDQUERY\"/) { print $_; #$data{$query}->{$i}->{$_} unless ($_ eq ""); $i++; } } }
Thanks for any help,
AH
Using perl 5.6.1 unless otherwise noted. Apache 1.3.27 unless otherwise noted. Redhat 7.1 unless otherwise noted.
|
|---|