Ravi Malghan am Donnerstag, 27. April 2006 19.52: Hello Ravi
(please start a new thread for a new question) > Hi: I am extracting some value from $complete_event as > follows. What can I check to see if the extraction > returned a valid value? "if($_)" seems to be giving > incorrect values. look at perldoc perlvar for the meaning of the $_ var. It's not what you want in your case below. You're more interested in the question "What can I check to see if the extraction succeeded?"; if the extracted value is valid or not is a secondary problem and is implementation specific. > In the following statement, $srcIp > is being set to an old extracted value if there is no > valid value following srcIP in my $complete_string > instead of 0. True; from perldoc perlre: "NOTE: failed matches in Perl do not reset the match variables, which makes it easier to write code that tests for a series of more specific cases and remembers the best match." > $complete_event =~ /srcIp=(.+) srcPort=/; > if($_) {$srcIp = $1;} > else {$srcIp = 0;} Only use $1 etc. if the match succeeded: if ($complete_event =~ /srcIp=(.+) srcPort=/) { if($1) {$srcIp = $1;} else {$srcIp = 0;} } or shorter my $srcIp=$1 ? $1 : 0 if $complete_event =~ /srcIp=(.+) srcPort=/; Eventually you also want to be more specific in what is a valid value to extract, at least ([\d.]+) instead of (.+) . hope this helps Dani -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>