Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Matching string, then getting next line

by graff (Chancellor)
on Mar 09, 2006 at 03:19 UTC ( [id://535317]=note: print w/replies, xml ) Need Help??


in reply to Matching string, then getting next line

It would be easier if the file content were stored in an array (or if, as suggested above, you were reading it one line at a time). Something like this -- with some of the initialization steps filled in -- could be worthwhile:
open( INPUT, "some.file" ) or die $!; my @content; { local $/; @content = split( /[\r\n+]/, <INPUT> ); } my $tag1 = "whatever"; my $tag2 = "blah"; my $i = 0; while ( $i < $#content ) { # don't test very last line $_ = $content[$i++]; print "$content[$i]\n" if (( /35=8/ and /$tag1/ and /$tag2/ ) or ( /35=9/ and /$tag1/ )); }

I wanted to include the file open and read steps to show how to slurp it directly into an array (rather than slurping to a scalar then splitting to an array, which keeps two copies of the whole file in memory, which makes me itchy).

BTW, notice that you were using printf with a single scalar arg. Someday, if that string happened to contain "%d" or something similar, you might find the output to be different from what you intended.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://535317]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2024-04-24 19:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found