perl没有真正的二维数组,所谓的二维数组实际上是把一维数组以引用的方式放到另一个一维数组。数组
二维数组定义 :this
my @array1=([1,2],[3,4],[45,9],[66,-5]); <-----------使用[]表示匿名数组spa
或者scala
my @array2=qw/this is a array/;
my @array3=("another","array");
my @array4=(\@array2,\@array3); <------------使用\@表示引用数组code
二维数组的使用blog
$array1[1][1] 或者$array1[1]->[1]class
$array1[1] 表明数组的地址test
例子:perl
#!/usr/bin/perl -w use strict; my @array1=([1,2],[3,4],[45,9],[66,-5]); print $array1[1][1] ; print $array1[1]->[1]; print $array1[1]; my @array2=qw/this is a array/; my @array3=("another","array"); my @array4=(\@array2,\@array3); my $text="this|is|a|test\nI|love|perl\n"; print "\n=========================================\n"; print $text; print "\n=========================================\n"; sub display { my @temp=@_; for(my $i=0;$i<scalar(@temp);$i++) { for(my $j=0;$j<scalar(@{$temp[$i]});$j++) { print "$temp[$i][$j] \t"; } print "\n"; } } &display(@array1); print "\n---------------------------------\n"; &display(@array4);
结果:引用
D:\perl>perl array.pl
44ARRAY(0x52e1d8) =========================================
this|is|a|test I|love|perl
=========================================
1 2
3 4
45 9
66 -5
---------------------------------
this is a array
another array