my $m = ""; $m .= "Dig No : A081 Prior: 2 Digstrt: 03/30/04 Time: 10:45\n"; $m .= "Address: 26800 BRADLEY RD Subdivsn: \n"; $m .= "Remarks: DIRECTIONAL BORING=NO. DEPTH EXCEEDS 7 FEET=NO. \n"; $m .= " : TICKET EXPIRES AFTER 04/22/04 \n"; $m .= "Members: ABTL0A AMTCHA CECO5A COMC4A ITHA0A LKFO0A NSGC0A \n"; my @m = split("\n", $m); # A hash to hold the extracted fields my %m; foreach (@m) { if ($_ =~ /^Dig No\s:\s(\w*)\s*Prior:\s*([0-9]*)\s*Digstrt:\s*([0-9]{2}\/[0-9]{2}\/[0-9]{2})\s*Time:\s*([0-9]{2}:[0-9]{2})/) { $m{'DIG_NO' } = $1; $m{'PRIORITY'} = $2; $m{'DIGDATE' } = $3; $m{'DIGTIME' } = $4; } elsif ($_ =~ /^Address\s*:\s*(.*)Subdivsn/) { $m{'ADDRESS' } = $1; } elsif ($_ =~ /^Remarks\s*:\s*(.*)/) { $m{'REMARKS' } = $1; } } #### : sometext here