Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: indefinite number of columns

by mtmcc (Hermit)
on Jul 15, 2013 at 14:30 UTC ( #1044393=note: print w/ replies, xml ) Need Help??


in reply to indefinite number of columns

Or an array of arrays, but this would use more memory than using hashes as suggested above, which might be important if your files are very large:

#!/usr/bin/perl use strict; use warnings; my $fileName = $ARGV[0]; my $numberOfColumns = 0; my @line = (); my $lineNumber = 0; my $x = 0; my $p = 0; my @arrayOfArrays = (); my $firstTime = 0; open (FILE, "<", $fileName); while (<FILE>) { chomp; @line = split (",", $_); if ($firstTime == 0) { $numberOfColumns = @line; $firstTime = 1; } for($x = 0; $x < $numberOfColumns; $x += 1) { $arrayOfArrays[$x][$lineNumber] = $line[$x]; } $lineNumber +=1; } #to access your values: column one: $p=0, column 2: $p = 1 etc. for ($p = 0; $p < $numberOfColumns; $p += 1) { for ($x= 0; $x<$lineNumber; $x += 1) { print STDERR "$arrayOfArrays[$p][$x]\n"; } }

-Michael


Comment on Re: indefinite number of columns
Download Code
Re^2: indefinite number of columns
by zork42 (Monk) on Jul 17, 2013 at 12:32 UTC
    Or an array of arrays, but this would use more memory than using hashes as suggested above, which might be important if your files are very large:
    I don't understand this, please could you explain:

    1. Why would an array of arrays use more memory than a hash of arrays?
      I'd expect it to be the other way round.
    2. would the "of arrays" data occupy the same amount of memory in both AoA and HoA in this example?
      (This seems reasonable as this is just the total data of all the rows.)
    3. From (2) follows: Why does an array use more memory than a hash?

    Thanks :)
      Touché!

      My mistake. I guess the hash of arrays would take up slightly more memory, because instead of using an array index to label individual arrays, it uses the column headers to label them. I imagine that if the number of columns is low, there wouldn't be a large difference?

      Thanks for pointing that out!

      -Michael
        Thanks for your reply. That makes more sense! :)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (7)
As of 2014-08-29 13:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (280 votes), past polls