聘我网

新概念招聘3.0

Perl如何创建多维数组?

vote up0vote downstar

尝试如下:

#!/usr/bin/perl 

use warnings; 
use strict;  

my @a1 = (5,6); 
my @a2 = (@a1,7); 

@a1()中却被展开,结果仍然是1维。。

 

2 个答复

vote up0vote downcheck
  1. 直接对其中的标量赋值,比如$array[0][0] = 1;
  2. 插入引用,比如my @a2 = (\@a1, 3); 再比如my @a2 = ([1,2], 3);,其中\引用现存的数组,[]创建一个匿名数组并返回引用。

不管如何,perl内部其实始终是1维数组,多维靠的是引用;这点跟C很像,跟其他很多脚本语言的实现不同。

Perl @ARRAY s and %HASH es are all internally one-dimensional.

参考:

http://perldoc.perl.org/perldsc.html

链接
vote up0vote down

[]创建一个匿名数组并返回引用;而{}创建一个匿名哈希并返回引用;两者用法很类似:

my $ref = {'a' => 1};
print $$ref{'a'},"\n";
$ref = [1,2];
print $$ref[1],"\n";

输出:

1
2
链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.