cat users.txt aanis (Anis Ahmed A) accessed 2007/10/04 aaputin (Artem Aputin) accessed 2007/10/04 aazarov (Alexey Azarov) accessed 2007/10/04 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %users; open my $fh, '<', 'users.txt' or die "$!\n"; while (my $line = <$fh>) { chomp($line); my ($user, $fullname, $lastaccess) = ($line =~ m/([a-z]+).*?\((.*?)\).*?([\d\/]+)$/); $users{$user}{fullname} = $fullname; $users{$user}{lastaccess} = $lastaccess; } print Dumper(\%users); #### $VAR1 = { 'aanis' => { 'lastaccess' => '2007/10/04', 'fullname' => 'Anis Ahmed A' }, 'aazarov' => { 'lastaccess' => '2007/10/04', 'fullname' => 'Alexey Azarov' }, 'aaputin' => { 'lastaccess' => '2007/10/04', 'fullname' => 'Artem Aputin' } };