我刚开始使用perl,并希望对数组有所帮助。 我正在从数据文件中读取行并将行拆分为字段:
open (INFILE, $infile);
do {
my $linedata = <INFILE>;
my @data= split ',',$linedata;
....
} until eof;
然后我想将各个字段值(在@data中)存储在和数组中,以便数组看起来像输入数据文件,即数组的第一个“行”包含来自{{1的第一行数据等等。
来自infile的每行数据包含4个值,x,y,z和w,一旦数据都在数组中,我必须将数组传递给另一个读取x,y,z,w的程序并在由x,y,z值确定的点处在屏幕上显示w值。我无法逐行将数据传递给其他程序,因为程序期望数据采用2d matrtix格式。 任何帮助非常感谢。 克里斯
答案 0 :(得分: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.
;
}
但是,如果您只是尝试将一个众所周知的概念作为逗号分隔值格式阅读,那么请查看Text::CSV
之类的内容,因为它具有全部功能CSV不仅仅是用逗号分割。