sub main{ my $path; my @paths; my %alarm_details; my @alarm_details; @paths = ; #giving the file path foreach $path(@paths){ %alarm_details = {}; open(LOG,"<$path") || die "can't open log "; $alarm_details{filepath} = $path; while () { /^(.*)=(.*)$/; $alarm_details{ $1 } = $2 if ($1); } push(@alarm_details,\%alarm_details); } return Dumper(@alarm_details); }