The secret is in capturing the value between the parentheses. Your message always has the same basic string "Time for all triggers in report period (?s)". You can capture the value you want by putting parentheses in your regular expression around those values. Since your value is digits, use \d+. The '+' quantifier matches 1 or more of the previous character (in this case \d, or a digit). So, it will match one or more digits.

Remember to escape any parentheses that are in in the string you are searching. For example: $msg =~ /report period \((\d+)/

When you do this, the value is store in a built-in variable ${1} for the first set of parentheses, ${2} for the second set, etc.

For example:

my @msgs = ("Thu Oct 18 21:26:36 2007: Time for all triggers in rep +ort period (300s): 1.330981s", "Thu Oct 18 21:27:36 2007: Time for all triggers in r +eport period (600s): 1.457271s", "Thu Oct 18 21:28:36 2007: Time for all triggers in r +eport period (60s): 1.340150s"); for my $msg (@msgs) { if ($msg =~ /Time for all triggers in report period \((\d+)s\)/) { my $time = ${1}; # Insert your logic here... if ( $time >= 600) { print "Time ($time) >= 600\n"; } elsif($time >= 300) { print "Time ($time) >= 300\n"; } elsif($time >= 60 ) { print "Time ($time) >= 60\n"; } else { print "Time ($time) < 60\n"; } } }

In reply to Re: return code for finding a keyword within a line by perlofwisdom
in thread return code for finding a keyword within a line by sultano

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.