3

所以说我创建了一组这样的数组:

my (@device, @mount, @type, @options, @dump, @pass) = ();

后来我想创建一个包含这些数组的数组。我该怎么做?我尝试使用:

my @columns = (@device, @mount, @type, @options, @dump, @pass);

my @columns = ([@device], [@mount], [@type], [@options], [@dump], [@pass]);

问题似乎是@columns 仍然是空的。我觉得我犯了一个非常简单的语法错误。我做错了什么?

4

1 回答 1

8
  1. 使用时,只需将给定数组中的所有值分配给 array @columns

    my @columns = (@device, @mount, @type, @options, @dump, @pass);
    
  2. 在这里,您只是通过引用说出所有数组,如果您使用Data::Dumper,您可以看到数组的结构@columns

    use Data::Dumper;
    
    my @columns = ([@device], [@mount], [@type], [@options], [@dump], [@pass]);
    print Dumper(\@columns);
    

您可以使用数组引用来做到这一点。阅读本教程:perlreftut - Mark 关于参考的简短教程

my @columns = (\@device, \@mount, \@type, \@options, \@dump, \@pass);

然后使用解引用:

my @new_device = @{ $columns[0] };
于 2012-09-22T20:32:21.933 回答