为 GD::Graph 创建数组数组

Creating an array of arrays for GD::Graph

好吧,我正在尝试在 Perl 中创建一个数组数组以用于 GD::Graph 模块。而且我无法弄清楚为什么以下不是 GD::Graph.

的有效数组数组
my @t = (1, 2, 3, 4);
my @g = (2, 4, 5, 6);
my @data = (@t, @g);

我也试过像下面这样构建数据,但还是不行。

my @data;
push @data, @t;
push @data, @g;

我想将我的值保存在单独的数组中,然后将它们组合起来与 GD::Graph 一起使用,因为这是我发现的最简单的方法,即使它很丑陋。我将如何着手创建一个有效的结构以用于动态创建的 GD::Graph?

它在这里抱怨它。

my $gd = $graph->plot(\@data) or die $graph->error;

看起来@data 只是一个包含 8 个元素的单维数组。

您可以使用匿名数组构造函数定义数组的数组[]

my @data = (
    [1, 2, 3, 4],
    [2, 4, 5, 6]
);

对我来说,使用数组引用就成功了

my @t = (1, 2, 3, 4);
my @g = (2, 4, 5, 6);
my @data = (\@t, \@g);

并绘制图表示例:

my $graph = new GD::Graph::lines(800,600 );
my $gd = $graph->plot( \@data );
open OUT, ">","whatever.png" or die "Couldn't open for output: $!";
binmode(OUT);
print OUT $gd->png( );
close OUT;