Perl - 将行推入数组

时间:2013-07-03 12:49:50

标签: arrays perl reference perl-data-structures

我在CPAN上找到了一个lib,名为Statistics-MVA-MultipleRegression-0.0.1,

the library's link is here

编码示例如下:

use Statistics::MVA::MultipleRegression;   
my $lol = [

        [qw/745  36  66/],
        [qw/895  37  68/],
        [qw/442  47  64/],
        [qw/440  32  53/],
        [qw/1598 1   101/],
     ];

    my ($Array_ref_of_coefficients, $R_sq) = linear_regression($lol);

但是数组$ lol,我想在RUNTIME推送一些行,而不是初始化它,

表示:


 my $input = [$x, $y, $z];

 push @tmpArray, $input;

 my $lol = \@tmpArray;

但这不起作用,有人能给我一些方法来做到这一点吗?

非常感谢!

2 个答案:

答案 0 :(得分:2)

像这样推,$lol是一个包含数组引用的数组引用,你想再推送一个数组引用。

push(@{$lol}, $input);

答案 1 :(得分:0)

要在运行时填充数组,假设您正在从文件中读取输入,则代码将具有与下面的代码类似的结构。

my $lol = [];

open my $fh, "<", "input.dat" or die "$0: open: $!";
while (<$fh>) {
    chomp;
    my($x,$y,$z) = split;

    push @$lol, [$x, $y, $z];
}

从那里,在linear_regression中的矩阵上调用$lol