#!/usr/bin/perl use strict; use warnings; use Data::Dumper; open my $FILE, '<', 'temp' or die "can not open temp $!"; my @AoH; while ( my $line = <$FILE> ) { chomp $line; my ( $part1, $part2 ) = split /#/, $line; my @resultarry2 = split /\s/, $part1; push @AoH, { split( /[=;]/, $part2 ), datetime => "@resultarry2[ 1, 2 ]", threadname => $resultarry2[ 6 ], }; } close $FILE; print scalar( @AoH ), "\n"; print Dumper \@AoH;