我有几个大小相同的数组,如下所示:
@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 perlref和 perldoc 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/