大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> CGI专区 -> Perl教学 第十二篇 Perl5中的引用之四

Perl教学 第十二篇 Perl5中的引用之四

时间: 2021-07-31 作者:daque

五、多维数组语句@array = list;不妨创造数组的援用,中括号不妨创造隐姓埋名数组的援用。底下语句为用来绘图的三维数组的例子:$line = ['solid' , 'black' , ['1','2','3'] , ['4','5','6']];此语句创造了一个含四个元素的三维数组,变量$line指向该数组。前两个元素是标量,存贮线条的典型和脸色,后两个元素是隐姓埋名数组的援用,存贮线条的开始和尽头。考察其元素语法如次:$arrayreference->[$index] single-dimensional array $arrayreference->[$index1][$index2] two-dimensional array $arrayreference->[$index1][$index2][$index3] three-dimensional array 不妨创造在你的才华、安排体味和计划机的外存承诺的情景下极尽搀杂的构造,但最佳对大概读到或处置你的代码的人和睦少许--尽管使代码大略些。另一上面,即使你想向旁人夸口你的编制程序本领,perl给你充满的时机和本领编写连本人都不免费解的代码。:)倡导:当你想运用多于三维的数组时,最佳商量运用其它数据构造来简化代码。底下为创造和运用二维数组的例子:1 #!/usr/bin/perl2 #3 # using multi-dimensional array references4 #5 $line = ['solid', 'black', ['1','2','3'] , ['4', '5', '6']];6 print "\$line->[0] = $line->[0] \n";7 print "\$line->[1] = $line->[1] \n";8 print "\$line->[2][0] = $line->[2][0] \n";9 print "\$line->[2][1] = $line->[2][1] \n";10 print "\$line->[2][2] = $line->[2][2] \n";11 print "\$line->[3][0] = $line->[3][0] \n";12 print "\$line->[3][1] = $line->[3][1] \n";13 print "\$ine->[3][2] = $line->[3][2] \n";14 print "\n"; # the obligatory output beautifier. 截止输入如次:$line->[0] = solid$line->[1] = black$line->[2][0] = 1$line->[2][1] = 2$line->[2][2] = 3$line->[3][0] = 4$line->[3][1] = 5$line->[3][2] = 6 那么三维数组又怎样呢?底下是上例略为变换的本子。1 #!/usr/bin/perl2 #3 # using multi-dimensional array references again4 #5 $line = ['solid', 'black', ['1','2','3', ['4', '5', '6']]];6 print "\$line->[0] = $line->[0] \n";7 print "\$line->[1] = $line->[1] \n";8 print "\$line->[2][0] = $line->[2][0] \n";9 print "\$line->[2][1] = $line->[2][1] \n";10 print "\$line->[2][2] = $line->[2][2] \n";11 print "\$line->[2][3][0] = $line->[2][3][0] \n";12 print "\$line->[2][3][1] = $line->[2][3][1] \n";13 print "\$line->[2][3][2] = $line->[2][3][2] \n";14 print "\n"; 截止输入如次:$line->[0] = solid $line->[1] = black $line->[2][0] = 1 $line->[2][1] = 2 $line->[2][2] = 3 $line->[2][3][0] = 4 $line->[2][3][1] = 5 $line->[2][3][2] = 6 考察第三层元素的办法形如$line->[2][3][0],一致于c谈话中的array_pointer[2][3][0]。本例中,下标均为数字,固然亦可用变量包办。用这种本领不妨把数组和哈希表贯串起来形成搀杂的构造,如次:1 #!/usr/bin/perl2 #3 # using multi-dimensional array and hash references4 #5 %cube = (6 '0', ['0', '0', '0'],7 '1', ['0', '0', '1'],8 '2', ['0', '1', '0'],9 '3', ['0', '1', '1'],10 '4', ['1', '0', '0'],11 '5', ['1', '0', '1'],12 '6', ['1', '1', '0'],13 '7', ['1', '1', '1']14 );15 $pointer = \%cube;16 print "\n da cube \n";17 foreach $i (sort keys %$pointer) {18 $list = $$pointer{$i};19 $x = $list->[0];20 $y = $list->[1];21 $z = $list->[2];22 printf " point $i = $x,$y,$z \n";23 } 截止输入如次:da cube point 0 = 0,0,0 point 1 = 0,0,1 point 2 = 0,1,0 point 3 = 0,1,1 point 4 = 1,0,0 point 5 = 1,0,1 point 6 = 1,1,0 point 7 = 1,1,1 这是一个设置正方体的例子。%cube中生存的是点号和坐标,坐标是个含三个数字的数组。变量$list获得坐标数组的援用:$list = $$ pointer{$i}; 而后考察各坐标值:$x = $list->[0]; ... 也可用如次本领给$x、$y和$z赋值:($x,$y,$z) = @$list;运用哈希表和数组时,用$和用->是一致的,对数组而言底下两个语句等效:$$names[0] = "kamran";$names->[0] = "kamran";对哈希表而言底下两个语句等效:$$lastnames{"kamran"} = "husain";$lastnames->{"kamran"} = "husain";perl中的数组不妨在运转中创造和扩充。当数组的援用第一次在等式左边出当前,该数组机动被创造,大略变量和多维数组也是一律。如次句,即使数组contours不生存,则被创造:$contours[$x][$y][$z] = &xlate($mousex, $mousey);

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.