You might find the articles on Data Structures in Tutorials interessting.

use strict; use warnings; use Data::Dumper; # very handy to understand your data! my $datafilename = 'map.txt'; my @list; open my $DATAFILE, '<', "$datafilename" or die "$datafilename: $!"; while(<$DATAFILE>){ chomp; push @list, [split /\s+/]; } # uncomment next line to see data structure #print Dumper( @list ), "\n\n"; print $list[1][5], "\n"; # prints sixth field on second row
You can test if an element has valid data like this:

if ($list[$x][$y] =~ /\d+/) # is a number

But for these data, you will have a hard time identifying missing data, because you split on spaces, unless missing data is encoded in some special way, like for example: 'n/a' .

If some records miss data (has spaces instead of numbers) in say the third column, your split will give you one element less for the line, rather than an array where the third element is undef, which is what you want.

If you can get at these data in another format, like tab-separated or something, that would help.


In reply to Re: Reading a file as an multi dimensional array Please help by stiller
in thread Reading a file as an multi dimensional array Please help by sas429s

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.