arrays - 如何在 Perl 中将相同大小的数组合并为一个数组?

标签 arrays perl

我有几个大小相同的数组,如下所示:

@m1= (1,1,0,1);
@m2= (0,1,1,1);
@m3= (0,1,1,0);
@m4= (1,1,0,0);

问题是我怎样才能把它放在这样的一个数组中?
@m = (
      [1,1,0,1],
      [0,1,1,1],
      [0,1,1,0],
      [1,1,0,0]
     );

最佳答案

编辑:既然你想复制数组(根据你的评论),那么我会这样做——

my @m = ( [ @m1 ], [ @m2 ], [ @m3 ], [ @m4 ] );

perldoc perlrefperldoc perlreftut想要查询更多的信息。

原答案:

如果要将它们展平为一个数组:
my @m = ( @m1, @m2, @m3, @m4 );

如果你想要一个arrayrefs数组:
my @m = ( \@m1, \@m2, \@m3, \@m4 );

例子:
use Data::Dumper;                                                                                                                                                                                          

my @m1= (1,1,0,1);                                                                                                                                                                                         
my @m2= (0,1,1,1);                                                                                                                                                                                         
my @m3= (0,1,1,0);                                                                                                                                                                                         
my @m4= (1,1,0,0);                                                                                                                                                                                         

my @m = ( @m1, @m2, @m3, @m4 );                                                                                                                                                                            
warn Dumper( \@m );                                                                                                                                                                                        

my @m_again = ( \@m1, \@m2, \@m3, \@m4 );                                                                                                                                                                  
warn Dumper( \@m_again ); 

输出:
$VAR1 = [                                                                                                                                                                                                 
          1,
          1,
          0,
          1,
          0,
          1,
          1,
          1,
          0,
          1,
          1,
          0,
          1,
          1,
          0,
          0
        ];
$VAR1 = [
          [
            1,
            1,
            0,
            1
          ],
          [
            0,
            1,
            1,
            1
          ],
          [
            0,
            1,
            1,
            0
          ],
          [
            1,
            1,
            0,
            0
          ]
        ];

关于arrays - 如何在 Perl 中将相同大小的数组合并为一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16673541/

相关文章:

c++ - 如何在 C++ 中创建参数化对象数组?

PHP:在数组中填充 'gaps'

perl - 使用 perl 通过 API 在 tumblr 上发布本地镜像文件

perl - Perl 变量声明的正确方法

perl - 如何强制逻辑或运算符的列表上下文

Javascript 数组显示单个属性的值,但不显示完整数组

java - 二维数组填充不起作用

javascript - 在双重嵌套 for 循环中组合变量

perl 一行只保留所需的行

macos - OSX 10.9 Mavericks 上的 Perl DBI/DBD 问题