use strict; use warnings; use File::Basename; use Data::Dumper; my %MyItems; my $ARGV ="/var/log/server1.log"; my $mon = 'Aug'; my $day = '06'; my $year = '2010'; while (my $line = <>) { chomp $line; print "Line: $line\n" if debug; if ($line =~ m/(.* $mon $day) \d{2}:\d{2}:\d{2} $year: ([^:]+):backup:/) { my $server = basename $ARGV, '.log'; my $BckupDate="$1 $year"; my $BckupSet =$2; print "$BckupDate ($BckupSet): " if debug; $MyItems{$server}{$BckupSet}->{'MyLogdate'} = $BckupDate; $MyItems{$server}{$BckupSet}->{'MyDataset'} = $BckupSet; $MyItems{$server}{$BckupSet}->{'MyHost'} = $server; #$MyItems{$server}{$BckupSet}->{'MyServer'} = $server; if ($line =~ m/(ERROR|backup-size|backup-time|backup-status)[:=](.+)/) { my $BckupKey=$1; my $BckupVal=$2; $MyItems{$server}{$BckupSet}->{$BckupKey} = $BckupVal; print "$BckupKey=$BckupVal\n" if debug; } } } print Dumper(%MyItems);