perl没有真正的二维数组,所谓的二维数组其实是把一维数组以引用的方式放到另外一个一维数组。

二维数组定义 :

my @array1=([1,2],[3,4],[45,9],[66,-5]);               <----------- 使用[]表示匿名数组

my @array2=qw/this is a array/;
my @array3=("another","array");
my @array4=(\@array2,\@array3); <------------使用\@表示引用数组

二维数组的使用

$array1[1][1]  或者 $array1[1]->[1]

$array1[1] 代表数组的地址

#!/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

转载请注明出处:http://www.cnblogs.com/tobecrazy/