+ -
当前位置:首页 → 问答吧 → perl二维数组

perl二维数组

时间:2010-10-11

来源:互联网

请问各位大侠,如何将一个perl二维数组全部初始化为零啊?
这样写@array=0怎么就不对呢?
小弟初学,请大侠指点一下啊

作者: quantumren   发布时间: 2010-10-11

@array=0相当于$array[0] = 0,这种赋值就声明了@array是个一维数组……

二维数组的话,如果你知道它的大小,比如说是 m × n 的
那么可以用传统方法初始化,例如:
  1. 伪代码
  2. for my $x (0 .. m -1 ){
  3.     for my $y (0 .. n - 1){
  4.         $array[$x][$y] = 0;
  5.     }
  6. }
复制代码
如果你不知道它的大小,那么直接用吧,因为perl默认它为0,比如:
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use 5.10.0;

  5. my @array;

  6. $array[1][2]++;

  7. say $array[1][2];
复制代码

作者: 珞水的大叔   发布时间: 2010-10-11

默认是 uninitialized value,当0用会报 warning 的,不过 ++,--不会报

作者: zhlong8   发布时间: 2010-10-11

多谢 zhlong8 的提醒,呵呵
我倒是没有注意到它的warning

作者: 珞水的大叔   发布时间: 2010-10-11

最近的帖子好多都是问这个 warning 的,不注意都不行

作者: zhlong8   发布时间: 2010-10-11