Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Parsing/regex question

by superfrink (Curate)
on Jul 06, 2009 at 18:39 UTC ( #777632=note: print w/ replies, xml ) Need Help??


in reply to Parsing/regex question

What do you want the script to do when it encounters a "has rolled into" line? eg: skip the line and the following line or two?

You could set a variable used to keep state when a line matches and at the top of the loop skip lines if the variable is set. Here is some sample completely un-tested code:

my $lines_to_skip = 0; LINE: while (<MSOUT>) { if (0 < $lines_to_skip) { $lines_to_skip --; next LINE; } ... if ($line =~ /^(Position|Spot|Mark) has rolled into$/)) { $lines_to_skip = 1; next LINE; } }


Comment on Re: Parsing/regex question
Download Code
Replies are listed 'Best First'.
Re^2: Parsing/regex question
by vxp (Pilgrim) on Jul 06, 2009 at 18:43 UTC

    When the script encounters a "Position has rolled into" line it should skip everything up to the datestamp, and place that datestamp into a $position_rolled_into var

    Same goes for the "spot/mark has rolled into" :)

      should skip everything up to the datestamp

      oops, missed the "---" line. Adding one line of code addresses that:

      my $position_rolled = 0; while (<$fh>) { chomp; if ($position_rolled) { next if !/^... .\d 20\d\d/; $position_rolled = 0; $position_rolled_into = $_; } elsif ($_ eq 'Position has rolled into') { $position_rolled = 1; } ... }
      Then in the while loop you can do something like this:
      ... if (0 < $lines_to_skip) { if ($line =~ /datestamp-regex/) { next LINE; } # we are at the next date stamp line so fall through, etc. } ...
      Also rename $lines_to_skip to something suitable.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (10)
As of 2015-07-30 09:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (270 votes), past polls