in reply to return code for finding a keyword within a line
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"; } } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: return code for finding a keyword within a line
by sultano (Initiate) on Oct 19, 2007 at 20:56 UTC |