my %alarm_details; my @files = ; foreach my $file (@files) { open LOG, "<", $path or die "Can't open $file:$!\n"; $alarm_details{filepath} = $file; while () { chomp; my ($key, $value) = split /=/, $_; $alarm_details{filepath}{$key} = $value if ($key); } close LOG; }