#!/usr/bin/perl use strict; use warnings; use 5.010; use Carp; use Data::Dumper; use strict; use Data::Dumper; my %hash; while(my $line = ) { chomp $line; next if $line =~ m/^\s*#/; next if $line =~ m/^\s*$/; my ($number, $user, $comment) = split /\s+/, $line, 3; $hash{$number} = { number => $number, user => $user, comment => $comment, } } say Dumper(\%hash), "\n"; __DATA__ #Number User Comments 1234567 sam changed abc in the file. 5646542 john deleted asds in the file. 45656 me what a use name 535353 McA Supermonk *grin* #### $hash{$number} = { number => $number, user => $user, comment => $comment, } #### push @{$hash{$number}}, { number => $number, user => $user, comment => $comment, };