Sounds like you are looking for a hash of arrays.  From _Programming_Perl_ :
 

Use a hash of arrays when you want to look up each array by a particular string rather 
than merely by an index number. In our example of television characters, rather than 
merely looking up the list of names by the zeroth show, the first show, and so on, 
we'll set it up so we can look up the cast list according to the name of the show.

Because our outer data structure is a hash, we've lost all ordering of its contents. 
That means when you print it out, you can't predict the order things will come out. 
You can call the sort function and print its result if you'd like a particular output 
order.


4.7.2.1 Composition of a hash of arrays

# we customarily omit quotes when keys are identifiers
%HoL = (
    flintstones    => [ "fred", "barney" ],
    jetsons        => [ "george", "jane", "elroy" ],
    simpsons       => [ "homer", "marge", "bart" ],
);
 

        -----Original Message----- 
        From: Daniel Falkenberg [mailto:[EMAIL PROTECTED]] 
        Sent: Mon 3/25/2002 8:37 PM 
        To: Timothy Johnson 
        Cc: [EMAIL PROTECTED] 
        Subject: RE: Can I set this as a hash?
        
        

        I am still new to Perl as well.
        
        I want the end result to look like the following...
        
        USERNAME   FULLNAME   COMPANY   OWING
        username1  fullname1  company1  owing1
        username2  fullname2  company2  owing2
        
        and so on....
        
        Then I need for a user to type in their username and I need my script to
        be able to extract the rest of the data such as if the user enters
        username1 as their username I need to display...
        
        fullname1  company1  owing1.
        
        Does this make sense?
        
        Regards,
        
        Dan
        
        
        
        -----Original Message-----
        From: Timothy Johnson [mailto:[EMAIL PROTECTED]]
        Sent: Tuesday, 26 March 2002 11:46 AM
        To: 'Matthew Harrison'; Daniel Falkenberg
        Cc: [EMAIL PROTECTED]
        Subject: RE: Can I set this as a hash?
        
        
        
        Or perhaps a list of lists... Maybe you should describe your HOH better.
        What do you want the end result to look like?
        
        -----Original Message-----
        From: Matthew Harrison [mailto:[EMAIL PROTECTED]]
        Sent: Monday, March 25, 2002 5:18 PM
        To: Daniel Falkenberg
        Cc: [EMAIL PROTECTED]
        Subject: Re: Can I set this as a hash?
        
        
        I know i'm still only learning perl so feel free to ignore me if i've
        said
        something stupid, but wouldn't tha be better as a list instead of a
        hash?
        
        On Tue, 26 Mar 2002, Daniel Falkenberg wrote:
        
        > Hello All,
        >
        > Just wondering how I would go about setting up the following hash and
        if
        > it would be wise to do it this way?
        >
        > I have the following data...
        >
        > $username $company $fullname $owing
        >
        > I want to place all of this in a hash of a hash...
        >
        > %name_of hash =
        >                  "Username1" => "Company1" => "$fullname1" => "$owing"
        >
        > So basically I want to populate the hash with the above data.  Here is
        > there perl code I have so far...
        >
        > #!/usr/bin/perl -w
        >
        > use Data::Dumper;
        >
        >
        > $FILE_NAME = "vintekdb_query_250302.txt";
        > $USER_DATA = "/var/www/cgi-bin/$FILE_NAME";
        >
        > sub read_data {
        >   open USER_DATA, "$USER_DATA" or warn "cannot open '$USER_DATA' for
        > reading: $!\n";
        >   flock(USER_DATA, 2) || warn "Can't lock $USER_DATA exclusively: $!";
        >   while( $USER_DATA=<USER_DATA> ) {
        >     @USER_DATA = split (/,/, $USER_DATA);
        >     s/^"|"$//g foreach @USER_DATA;
        >     $username = $USER_DATA[0];
        >     $fullname = $USERDATA[1];
        >     $company  = $USERDATA[2];
        >     $owing    = $USERDATA[3];
        >     #CREATE HASH OF HASH HERE
        >     }
        >   }
        >   close USER_DATA;
        >   return %users; #NAME OF HASH
        > }
        >
        > read_data();
        >
        > Does any one have any ideas on how I would go about this?  Is this
        even
        > the best way to do something like this?
        >
        > Regards,
        >
        > Dan
        >
        >
        
        --
        Matthew Harrison
        Internet/Network Services Administrator
        Peanut-Butter Cheesecake Hosting Services
        Genestate
        www.peanutbuttercheesecake.co.uk
        
        
        --
        To unsubscribe, e-mail: [EMAIL PROTECTED]
        For additional commands, e-mail: [EMAIL PROTECTED]
        
        
        ------------------------------------------------------------------------
        --------
        This email may contain confidential and privileged
        material for the sole use of the intended recipient.
        If you are not the intended recipient, please contact
        the sender and delete all copies.
        
        --
        To unsubscribe, e-mail: [EMAIL PROTECTED]
        For additional commands, e-mail: [EMAIL PROTECTED]
        
        



Reply via email to