You can test if an element has valid data like this: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
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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |