Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300461
  • 博文数量: 47
  • 博客积分: 1667
  • 博客等级: 上尉
  • 技术积分: 686
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 16:20
文章分类

全部博文(47)

文章存档

2013年(20)

2012年(20)

2011年(7)

分类: LINUX

2012-12-21 16:45:12

#!/usr/bin/perl
use warnings;
use strict;


定义一个2维数组,只要在定义数组,添加多个数组即可
my @matrix = ( [3,4,10],
                       [2,7,12],
                       [0,3,4],
                       [6,5,9],  
);
访问2维数组时,首先是子数组在大数组中下标,然后是小数组中元素的下标,
例如
$matrix[2][0] 访问0,
$matrix[1][1] 访问7,
如果修改的话也同样 $matrix[2][0]=10;
修改成数组;
$matrix[2][0]=[7,8,9];
这样$matrix[2][0][0] 可以访问到7;


向2维数组里面push一维数组
my @aaa=(1,2,3);
push @matrix,@aaa;
这样1,2,3是以元素的访问直接存在于@matrix中,如下
@matrix = ( [3,4,10],
                  [2,7,12],
                  [0,3,4],
                  [6,5,9],  
                  1,2,3, 
);


向2维数组里面push2维数组
my @bbb=([444,555,666],[777,888,999]);
push @matrix,@bbb;
这样push进去的@bbb是以上子数组方式存在,如下
@matrix = ( [3,4,10],
                  [2,7,12],
                  [0,3,4],
                  [6,5,9],  
                  1,2,3,
                  [444,555,666],
                  [777,888,999],
);

由此可以看到,push是将数组中的结构加入到新数组的结尾。
再来看看数组长度,
@matrix 的长度依然是,$#matrix + 1
那么子数组的长度怎么算呢
  如果我想访问[777,888,999]怎么访问呢,
$matrix[$#matrix];这个是子数组在数组中下标,那么访问子数组的话@{$matrix[$#matrix]};
同理可得长度为$#{$matrix[$#matrix]} + 1;

展示出数组的结构:

for (my $i=0;$i<=$#matrix;$i++){
  for (my $x=0;$x<=$#{$matrix[$i]};$x++){
   print $matrix[$i][$x] ."\t" ;

}
 print "\n";
}






阅读(1912) | 评论(0) | 转发(0) |
0

上一篇:监控windows QQ进程

下一篇:LVS/dr模式

给主人留下些什么吧!~~