大雀软件园

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

Perl教学 第九篇 关联数组之二

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

五、创造关系数组不妨用单个赋值语句创造关系数组,如:%fruit = ("apples",17,"bananas",9,"oranges","none");此语句创造的关系数组含有底下三个元素: ·下标为apples的元素,值为17 ·下标为bananas的元素,值为9 ·下标为oranges的元素,值为none 注:用列表给关系数组赋值时,perl5承诺运用"=>"或","来分割下标与值,用"=>"可读性更好些,上头语句等效于:%fruit = ("apples"=>17,"bananas"=>9,"oranges"=>"none");六、从数组变量复制到关系数组与列表一律,也不妨经过数组变量创造关系数组,固然,其元素数量该当为双数,如:@fruit = ("apples",17,"bananas",9,"oranges","none");%fruit = @fruit;反之,不妨把关系数组赋给数组变量,如:%fruit = ("grapes",11,"lemons",27);@fruit = %fruit;提防,此语句中元素步骤不决义,那么数组变量@fruit大概为("grapes",11,"lemons",27)或("lemons",27,"grapes",11)。关系数组变量之间不妨径直赋值,如:%fruit2 = %fruit1; 还不妨把数组变量同声赋给少许大略变量和一个关系数组变量,如:($var1, $var2, %myarray) = @list;此语句把@list的第一个元素赋给$var1,第二个赋给$var2,其他的赋给%myarray。结果,关系数组不妨经过归来值为列表的内嵌因变量或用户设置的子步调来创造,下例中把split()因变量的归来值--一个列表--赋给一个关系数组变量。 1: #!/usr/local/bin/perl2:3: $inputline = ;4: $inputline =~ s/^\s+|\s+\n$//g;5: %fruit = split(/\s+/, $inputline);6: print ("number of bananas: $fruit{\"bananas\"}\n"); 运转截止如次: oranges 5 apples 7 bananas 11 cherries 6number of bananas: 11 七、元素的增加和删除减少元素仍旧讲过,不妨经过给一个未展示过的元素赋值来向关系数组中减少新元素,如$fruit{"lime"} = 1;创造下标为lime、值为1的新元素。简略元素的本领是用内嵌因变量delete,如欲简略上述元素,则:delete ($fruit{"lime"});提防: 1、确定要运用delete因变量来简略关系数组的元素,这是独一的本领。2、确定不要对关系数组运用内嵌因变量push、pop、shift及splice,由于其元素场所是随机的。 八、列出数组的索引和值上头仍旧提到,keys()因变量归来关系数组下目标列表,如:%fruit = ("apples", 9,"bananas", 23,"cherries", 11);@fruitsubs = keys(%fruits);这边,@fruitsubs被赋给apples、bananas、cherries形成的列表,再次提请提防,此列表没有步骤,若想按假名程序陈设,可运用sort()因变量。@fruitindexes = sort keys(%fruits);如许截止为("apples","bananas","cherries")。一致的,内嵌因变量values()归来关系数组值的列表,如:%fruit = ("apples", 9,"bananas", 23,"cherries", 11);@fruitvalues = values(%fruits);这边,@fruitvalues大概的截止为(9,23.11),步骤大概各别。九、用关系数组轮回前方仍旧展示过运用keys()因变量的foreach轮回语句,这种轮回功效比拟低,由于每归来一个下标,还得再去探求其值,如:foreach $holder (keys(%records)){$record = $records{$holder};} perl供给一种更灵验的轮回办法,运用内嵌因变量each(),如:%records = ("maris", 61, "aaron", 755, "young", 511);while (($holder, $record) = each(%records)) {# stuff goes here} each()因变量历次归来一个双元素的列表,其第一个元素为下标,第二个元素为相映的值,结果归来一个空驶列车表。提防:万万不要在each()轮回中增添或简略元素,要不会爆发不行预见的成果。十、用关系数组创造数据构造用关系数组不妨模仿在其它高档谈话中罕见的多种数据构造,本节报告怎样用之实行:链表、构造和树。1、(单)链表链表是一种比拟大略的数据构造,不妨按确定的步骤存贮值。每个元素含有两个域,一个是值,一个是援用(或称南针),指向链表中下一个元素。一个特出的头南针指向链表的第一个元素。在perl中,链表很简单用关系数组实行,由于一个元素的值不妨动作下一个元素的索引。下例为按假名程序陈设的单词链表:%words = ("abel", "baker", "baker", "charlie","charlie", "delta","delta", "");$header = "abel";

热门阅览

最新排行

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