Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: arrays or hashes

by the_slycer (Chaplain)
on Aug 27, 2002 at 15:00 UTC ( #193183=note: print w/replies, xml ) Need Help??

in reply to arrays or hashes

If you are working with just the names - then yes, I would use an array, faster access.

However, if you need the values associated with the names - your best be may be to build a hash of arrays.

Alternately, if you just need to loop once, using both the names & values - forget an array or a hash, just split the data in the loop that you read the file :)

Replies are listed 'Best First'.
Re: Re: arrays or hashes
by Anonymous Monk on Aug 27, 2002 at 15:58 UTC
    i'm working with both names and values.....what is the best way to build a hash of arrays? thanks
      I would do something like this:

      my %data; while (<FILE>) { my ($name, $val) = split /\s+/; push @{ $data{$name} }, $val; }
      When you say working with both names and values, what are you trying to do with them? add all the second coulmn numbers for each name up? sort by something? what? depending on exactly what you are going to be doing with the data your options can be way different. for instance if you want to add all of the numbers up for each name you can do this:
      my %names; open (FILE, "data") or die "Cant open data: $!\n"; while (<DATA>) { chomp; my ($tempname, $tempnum) = split / /; $names{"$tempname"} += $tempnum; } close FILE;
      Or if you need to track all of the numbers seperatly you could use an HoA (Hash of ArrayRefs) such that you push (@{$names{"$tempname"}},$tempnum); values into it. let us know what you plan to do with the data and we can get you some decent data structs. =)


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://193183]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (7)
As of 2020-05-30 11:08 GMT
Find Nodes?
    Voting Booth?
    If programming languages were movie genres, Perl would be:

    Results (171 votes). Check out past polls.