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格式.任何帮助非常感谢.克里斯
这并不是那么困难,你只需要存储拆分,而不是在他们自己的单独列表中,而是在一个数组中,占用一个更大的数组的插槽:
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的全部功能不仅仅是分割逗号.