如何使用Perl使用二维数组访问文件中的数据?
我不熟悉Perl编码&我面临着一种情况。以下是问题陈述: 我有一个文件,其中包含一些矩阵形式的数据(仅数字),如如何使用Perl使用二维数组访问文件中的数据?,perl,perl-data-structures,Perl,Perl Data Structures,我不熟悉Perl编码&我面临着一种情况。以下是问题陈述: 我有一个文件,其中包含一些矩阵形式的数据(仅数字),如 1 2 3 4 5 6 ....... 7 9 4 6 7 8 ....... ................... ................... 我有另一个文件,其中包含2行数据(一些坐标),如 这些是第一个文件中数据的坐标,我想从第一个文件中提取数据并粘贴到第二个文件的第三行,例如,在第一种情况下,我必须搜索第一个文件中第30行和第50列的元素并粘贴到第二个文件的第
1 2 3 4 5 6 .......
7 9 4 6 7 8 .......
...................
...................
我有另一个文件,其中包含2行数据(一些坐标),如
这些是第一个文件中数据的坐标,我想从第一个文件中提取数据并粘贴到第二个文件的第三行,例如,在第一种情况下,我必须搜索第一个文件中第30行和第50列的元素并粘贴到第二个文件的第1行第3列。这并不难
首先,您必须解析值矩阵。如果输入在文件句柄$fh
中,则可以执行以下操作:
my @data;
while(<$fh>) {
chomp; # remove newline
my @row = split; # split the current line on whitespace
push @data, \@row; # put a reference to this row into @data.
}
务必
严格使用;使用警告代码>位于每个脚本的顶部以捕获错误say
需要perl 5.10或更高版本。我想将第一个文件的内容放入一个二维数组,然后使用split从第二个文件获取数据,并使用该数据访问第一个数组中的特定元素。我曾经直接使用二维数组进行C编程,但在这里,我很难理解如何使用这个数组的语法,你在Perl中尝试了什么?thnx对于你的帮助,我将尝试一下,嘿,我在windows中尝试了这个小脚本#/usr/bin/perl使用严格;使用警告;打开(“FH”,“萨米尔根据<代码>严格< /COD> >,Perl要求您声明所有变量;这是一件好事。您可以用<代码>声明我的<代码>(与C中的代码>自动<代码>)类似:<代码>我@ f=;……我的@ x=拆分……/代码>。此外,考虑使用“词汇文件句柄”:<代码>打开我的$FH,
my @data;
while(<$fh>) {
chomp; # remove newline
my @row = split; # split the current line on whitespace
push @data, \@row; # put a reference to this row into @data.
}
my @data = map { chomp; [split] } <$fh>;
while (<$fh2>) {
chomp;
my ($x, $y) = split;
say "at x=$x, y=$y there is $data[$y][$x]";
}