in reply to regex pattern match

Here's one way. It's not very elegant but I, too, have trouble with RegEx's. I think this does what you want; but I'm sure there's a shorter or more compact way. But hopefully it's a start. Note that I put sigle quotes around the output of $value to show that white space has, indeed, been trimmed off.

#!/usr/bin/perl use strict; use warnings; my @out = ( 'HostName: LAP3220889 TaskName: infiniteloop Next Run Time: Never Status: Last Run Time: 21:45:18, 22/06/2011 Last Result: 0 ' , 'HostName: LAP3220889 TaskName: infiniteloop Next Run Time: 11:06:00, 23/06/2011 Status: Running Last Run Time: 10:10:04, 23/06/2011 Last Result: 0 ' ,); my($key,$value)=('',0); foreach my $recNo(0..(scalar(@out)-1)){ print "\nRecord No. $recNo\n"; my @lines = split("\n",$out[$recNo]); foreach my $line (@lines){ next unless(($key) = ($line =~ /^(HostName|Status|Last\sResult)/) +); $value = ''; ($value) = ($line =~ /:(.*)$/); $value =~ s/^\s*(\S*)\s*$/$1/; #strip off leading and trailing w +hite space print " $key = '$value'\n"; } } exit(0);

The output from this code is:

Record No. 0 HostName = 'LAP3220889' Status = '' Last Result = '0' Record No. 1 HostName = 'LAP3220889' Status = 'Running' Last Result = '0'
ack Albuquerque, NM