2012-09-22 37 views
3

所以说,我创建了一组阵列,像这样:如何用perl中的现有数组声明数组?

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

再后来我想创造与里面的数组的数组。我会怎么做?我试图用:

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

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

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

+0

你的第二次尝试不正是我还以为你想要的东西:它产生保存每个原始阵列的副本的阵列。请解释该解决方案如何达不到您的产品,以便我们可以进一步帮助您 – Borodin

回答

8
  1. 当您使用时,您只需将给定数组中的所有值分配到数组@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's very short tutorial about references

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

然后使用解引用:

my @new_device = @{ $columns[0] }; 
+0

使用'1.'而不是'1)'表示一个列表。 –