我有一个方阵文件,我想将它加载到 Perl 中。我想像二维数组一样操作,在 C 中就像矩阵 [14] [50],然后它直接进入第 14 行第 50 列。有没有办法做到这一点?
我可以直接修改输入文件还是必须将其加载到变量中,进行操作然后将其写出来?
我有一个方阵文件,我想将它加载到 Perl 中。我想像二维数组一样操作,在 C 中就像矩阵 [14] [50],然后它直接进入第 14 行第 50 列。有没有办法做到这一点?
我可以直接修改输入文件还是必须将其加载到变量中,进行操作然后将其写出来?
我编写了一个模块,它可能能够满足您的需求。Tie::Array::CSV
. 它创建了一个神奇的arrayrefs 数组(一个Perl 二维数组),它允许行和元素对文件进行读/写访问。根据您的列分隔符,您可能需要调整选项(默认为 CSV)。
它使用不同的语法非常相似。
>matrix <- array(1:10000, dim=c(100,100)) #50 X 50 matrix
>somevariable <- matrix[14,51] #somevariable will now be 5014
把它变成一个 R 脚本
并从 perl 中调用它,例如
my $var = `rscript arguments`; # $var is now the output of your rscript