in reply to How to read data file into an array of hashes

it's urgent too....
Then I hope you're an Evelyn Wood graduate: perlpacktut

The following assumes unique surnames. This gets your fixed-width information into an unsorted Perl data structure (hash-of-hashes). sort it as you see fit:

use strict; use warnings; use Data::Dumper; my %clients; while (<DATA>) { next if /^Surname/; next if /^-/; my ($surname, $firstname, $town) = unpack 'A13A16A20', $_; $clients{$surname} = {first => $firstname, town => $town}; } print Dumper(\%clients); __DATA__ Surname L20, First Name L20, Town L20 -------------------------------------------------- Chaplin Charlie Basel Estevez Emilio Santa Manica Sarte Jean Paul Montmarte Rikard Frank Amsterdam Rodin Paul Montmarte

prints:

$VAR1 = { 'Rodin' => { 'first' => 'Paul', 'town' => 'Montmarte' }, 'Rikard' => { 'first' => 'Frank', 'town' => 'Amsterdam' }, 'Chaplin' => { 'first' => 'Charlie', 'town' => 'Basel' }, 'Sarte' => { 'first' => 'Jean Paul', 'town' => 'Montmarte' }, 'Estevez' => { 'first' => 'Emilio Santa', 'town' => 'Manica' } };

Replies are listed 'Best First'.
Re^2: How to read data file into an array of hashes
by fseng (Novice) on Jun 23, 2009 at 02:20 UTC
    Hi guys, Thank you so much. All I can say is that why did I spend the past 2 days trying to figure it out myself??!! I should come here earlier. I prefer the unpack one better since I feel dissy when I see all the regular expressions....
      All I can say is that why did I spend the past 2 days trying to figure it out myself??!! I should come here earlier.
      No, what you did is correct, you have to try out something of yourself first, otherwise you wouldn't have had the taste of regular expressions in that process.
      moreover IMO, pack/unpack are not easier ones to understand and use for any Perl newbies!.
      Good that you have got your solution, but never forget to try yourself and then come here for clarifications; we love to clarify such doubts.


      Vivek
      -- 'I' am not the body, 'I' am the 'soul', which has no beginning or no end, no attachment or no aversion, nothing to attain or lose.