#!/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 = <DATA>) {
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*
UPDATE: MidLifeXis had a very good question at Re: Hash of Array references. If you want to allow more than one entry per number you can collect them in an array. So change the lines
$hash{$number} = {
number => $number,
user => $user,
comment => $comment,
}
to
push @{$hash{$number}}, {
number => $number,
user => $user,
comment => $comment,
};
Regards
McA |