将数据从文件加载到2d数组

Chr*_*ris 3 arrays io perl multidimensional-array

我刚刚开始使用perl,并希望对数组有所帮助.我正在从数据文件中读取行并将行拆分为字段:

open (INFILE, $infile);
do {
my $linedata = <INFILE>;
my @data= split ',',$linedata;
....
} until eof;
Run Code Online (Sandbox Code Playgroud)

然后我想将各个字段值(在@data中)存储在和数组中,以便数组看起来像输入数据文件,即数组的第一个"行"包含来自的第一行数据INFILE等.

来自infile的每行数据包含4个值,x,y,z和w,一旦数据都在数组中,我必须将数组传递到另一个读取x,y,z,w的程序并显示在由x,y,z值确定的点处的屏幕上的w值.我无法逐行将数据传递给其他程序,因为程序期望数据采用2d matrtix格式.任何帮助非常感谢.克里斯

Axe*_*man 6

这并不是那么困难,你只需要存储拆分,而不是在他们自己的单独列表中,而是在一个数组中,占用一个更大的数组的插槽:

my @all_data;

while (my $linedata = <INFILE>) { 
   push # creates the next (n) slot(s) in an array
       @all_data
     , [ split ',',$linedata ] 
       # ^ we're pushing an *array* not just additional elements.
      ; 
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您只是尝试将一个众所周知的概念作为逗号分隔值格式阅读,那么请查看类似的内容Text::CSV,因为CSV的全部功能不仅仅是分割逗号.