#!/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; my %resultarray = ( split( /[=;]/, $part2 ), datetime => "@resultarry2[ 1, 2 ]", threadname => $resultarry2[ 6 ] ); push @AoH, \%resultarray; } close $FILE; my $numberofhashes = @AoH; print "$numberofhashes\n"; my $hr2 = \@AoH; print Dumper $hr2;