| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 编程开发 > Perl教程 > 文章正文 用户登录
各种漂亮的鼠标UR
去除头部banner
修改新浪博客上面
Google AdSenser 
Skype为推广员提供
Dotworlds免费提供
Better fonts免费
TinyURL免费缩短网
RealTracker提供免
谁杀死了站长(We

Perl变量(3)--关联数组           

Perl变量(3)--关联数组

作者:佚名 来源:http://www.fanqiang.com 更新:2006-8-25 21:05:35 错误报告 我要投稿

关联数组和前面说的数组类似,它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是, 关联数组的索引值不是非负的整数而是任意的标量。这些标量称为Keys,可以在以后用于检索数组中的数值。 

关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。每张卡片上半部分是索引而下半部分是数值。 

关联数组是Perl语言中特有的,关联数组是一个功能强大的数组。使用关联数组时要在前面加上%号,关联数组的格式如: 

%ARRAY=(key1,value1,key2,value2,key3,value3); 

每一个key都有一个相对应的值(value)。 

和数组类似,$zmd,@zmd,%zmd之间没有任何联系。Perl为对象的不同类型保留独立的命名空间。 

下面介绍关联数组的操作: 

在关联数组中增加、更改一对数据:ARRAY={key}=value; 在关联数组ARRAY中加上一对key-value,要在关联数组名称前加上$号,而且key的名称要在{}符号之间,最后再指定key所对应的value值。如果在这个关联数组中已经有这个key了.就会更改这个key所对应的value。 

keys(%array)操作符可生成由关联数组%array中的所有当前关键字组成的列表。即返回奇数个元素(第1,3,5,7...个)的列表。 

values(%array)操作符返回由关联数组%array中所有当前值组成的列表,即返回偶数个列表。 

echo(%array)操作符返回由一个关键字和一个值对构成的两个元素的表。对同一数组再操作时返回下一对值直至结束。若没有更多的对时,echo()返回空表。 (这在打印全部列表中很有用) 

删除一对在关联数组中的数据:delete $ARRAY{key};delete 是 Perl 所提供的函数,作用是删除关联数组中的一个key以及这个 key 所对应的 value。使用方法是 在 delete 函数之后,指定关联数组中要删除的key名称。 
关联数组的综合举例: 

%fred=(one,"zmd",two,"cxm"); $a=$fred{one};--- #$a等于"zmd" 
$b=$fred{two}---#$b等于"cxm" 
$fred{two}="yes"--- #%fred=(one,"zmd",two,"yes") 
@number=keys(%fred)--- #@list=(one,two) 
@user=values(%fred)---#@user=("zmd","cxm") 
($number,$name)=echo(%fred)--- #此时$number的值为one,$name的值为"zmd",再执行一次$number为值为two,$name的值为"cxm") 
@a=%fred--- #将关联数组fred指定给数组a,这时@a=(one,"zmd",two,"cxm") 
%b=@a---#将数组a指定给关联数组b,这时%b=(one,"zmd",two,"cxm") 
delete $fred{one}---#将关联数组中key值为one的一对key-value删除,这时%fred=(two,"cxm") 
%name=()---#把%name关联数组置空 
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。