in reply to Re^2: key value pair or simply a regexp
in thread key value pair or simply a regexp

Was able to get it working! Yea! Thanks to thezip for pointing me in the right direction after a little mod, it works.
#!/usr/bin/perl use strict; use warnings; my $out = qq(/home/smith/out); open (my $file, "+<", $out) or die $!; local $/ = ','; while (<$file>) { s/^\s+|\s+$//g; my ($msgagt) = $_ =~ /\w+=([^,]+)/; print $msgagt, "\n"; }

Replies are listed 'Best First'.
Re^4: key value pair or simply a regexp
by jdporter (Paladin) on May 21, 2007 at 14:59 UTC

    That's fine, but you should understand the following idiom, because it's much more general and is applicable in this case too.

    $_ = <<EOF; msgagt=ESM_WMB_AIX,sec_id=Sec_id,severity=Low,node=test,msgnode=qwmbap +01.xxxxxxxxxxxxx.net,utc=2007-04-26 18:01:59.472+00:00,om=UID=3a7affd +6-f420-11db-80b1-000000000000,AlertCode=AEM001,AlertType=AEM-default, +AppName=AEM-CommonService2,Message=5004:An error has been reported by + the BIPXML4C component.:XML EOF my %hash = map { split /=/, $_, 2 } split /,/; print $hash{'msgagt'}, "\n";

    With this, you've loaded the entire string into a hash. You can then access the "variable" you want, e.g. msgagt, by simply looking it up in the hash.