博客首页 注册 建议与交流 排行榜 加入友情链接         宝宝相册的专门空间
推荐 投诉 搜索: 帮助

欧阳.剑

欢迎大家光临欧阳.剑的寒舍! 我是一名软件开发员 希望大家能够一起努力 再一次唱响那响亮的口号 --- 好好学习,天天向上
   ouyangxiaodong.cublog.cn
关于作者  
姓名:欧阳.剑
职业:软件开发
年龄:1980年生
位置:现在西安,或许改天就挪地了
个性介绍:喜允计算机软件开发,喜欢与资深人员交流
我的msn:feifanbaqi.sohu.com

我的分类  




perl学习笔记之<变量>
perl变量具有三种类型:标量、数组和关联数组(常称散列Hash)。
1 标量前缀是$符号,数组变量前缀是@符号,而散列变量前缀则是%,由于“特殊字符”表明了使用的变量类型,可以对标量、数组和散列使用相同的名称而不必担主命名冲突。由于保留字和文件句柄没有前经特殊字符,变量名不会与保留字和文件句柄冲突。变量名大小写敏感的。如果变量以字母开头,它可以由任意数目的字母(下划线算作字母)和/或数字构成。如果变量不是以字母开头,它必须只由一个字符构成。
2 散列%赋值为由连字符号=>或逗号分隔的一组字符串构成的列表,散列的键元素包含在花括号{}中,打印相关联的值。每个值都是单一的值,即标量。值勤有美元符号$作前缀。
3 perl有三种类型的引号,它们是单引号、双引号和备份引号。反斜杠的行为就像一组单引号,但是只能用于引用单个字符。单引号是“民主的”引号,但是双引号却区别对待。备份引号包围操作系统命令时,命令由shell执行。双引号包含的字符串中不能内插散列。不能在双引号或单引号中包含备份引号。
4 perl的替换引号:q代表单号、qq代表双引号、qx代表备份引号、qw代表引用的字列表。定界符可以用在所有4个q结构。
5 标量是前缀有$的单个字符或字符串,如果标量变量包含在花括号中,则标量可能被附加给变量的任何字符替换。
6 如果示量妈不是有效的字符串,也不是有效的数字值,则它是未定义的,defined函灵敏用于检查变量值的有效性,undef函数使已经定义的变量解除定义。
7 $_用作搜索和保持当前行的默认样式空格。
8 并不要求数组的元素具有相同的数据类型。qw结构,用于创建列表,列表中的项目作为加单引号的字对待。将数组@赋值给标量变量$,标量的值是数组中元素个数。
9 特殊变量$#返回数组中最后一个下标,$[变量是当前数组的基下标0,数组的基下标从0开始,已经减去1。这样就将整个数组截取为空值或空列表。运算符..用在数组语境中时称为范围运算符。
10 将整个数组打印到stdout,不打印元素之间的空格。使用负偏移量作为下标,从数组的末端选择数组的元素。最后一个元素偏移-1,注意,当索引值在同一组括号中时,是对列表而不是对标量的引用;这就是数组名称前缀是@而不是$符号的原因。
11 将一个数组给另一个数组的元素赋值时,得出的数组称为数组片。数组包含在双引号中时,元素之间的空白保留。二维数组的每一行都包含在方括号中,箭头运算符,也称为中缀运算符,可以用于获得数组的单个元素。相邻的括号之间有隐含的->.数组是有序的列表,数字下标从0开始,而散列是无序的,使用随机分布的字符串下标。
12 在散列中,如果是单字,则没有必要给键回引号。打印%是将键和值包含在一起打印整个散列,而且不按预期的顺序。散列分片是散列键的列表,其对应的值指定为另一个键的列表。该列表由前缀@的散列名构成。嵌套的散列没有名称,是匿名的散列,可以使用箭头运算符引用。
13 perl的输入运算符<>包围stdin文件句柄,可以从终端键盘读取标准输入并赋值给变量,读取一行时保留了字符串末端的新行。输入运算符是空时与它的功能相同。
14 chop与chop的区别在于,chomp只删除新行字符。
15 number_of_bytes=read(FILEHANDLE,buffer,how_many_bytes);
   从规定的文件句柄将字符数读到变量中。
   getc FILEHANDLE or getc(FILEHANDLE) or getc:获取单个字符。
从文件句柄stdin读取输入时,如果语境是数组,则读取的每一行带有新行,并作为单一列表项目对待,连续读取直到按下结束文件的<Ctrl>-d(UNIX中)或<Ctrl>-z(WINDOWS中)
16 数组函数:
 .chop和chomp(用于列表)
 .exists $ARRAY[index]如果定义了数组的下,true
 .delet从数组中删除值,但是不删除元素本身,只是不定义删除的值。
 .grep(EXPR,LIST)对于数组的每个元素都要求出表达式的值。返回值是另外一个数组,由表达式求值为真的元素构成。作为标量值,返回值是表达式为真的次数。
 .join(DELIMITER,LIST)
 .map EXPR,LIST;  or map {BLOCK} LIST将数组中的每个值映射到表达式或块中,结果返回另一个数组。
 .pack 和unpack用于将列表压缩为二进制结构和将压缩的值展开成列表。
 .pop ARRAY or pop(ARRAY)弹出数组的最后一个元素并返回它,随后数组长度减1.
 .push(array,list)将值添加到数组的末尾
 .shift or shift array or shift(array)移出并返回数组的第一个元素。如果省略array,则移出argv数组,如果是在子程序中,则移出@_值。
 .splice(array,offset,length,list) or splice(array,offset,length) or splice(array,offset)删除并替换数组中的元素。
 .split("delimeiter",expr,limit) or split(/delimiter/,expr,limit) or split(/delimiter/,expr) or split("delimiter",expr) or split(/delimiter/) or split
 .sort list or sort(list) or sort subroutine list or sort (subroutine list)排序并返回排序的数组.
 .reverse以降序出现在值排序。
 .unshift(array,list)将list 预置于数组的开头。
 
17 散列函数
 .keys assoc_array or keys(assoc_array)以随机顺序返回元素是散列的数组。
 .value assoc_array or value(assoc_array)以随机顺序返回散列所有值的数组。
 .each(assoc_array)以随机顺序返回两元素数组,其元素是散列的键和对应的值。
 .delete $assoc_array{key}从散列删除值。如果成功则返回删除的值。
 .exists $assoc_array{key}
 特殊散列
 .%ENV含有从父进程,如shell或Web服务器传递给perl的环境变量。
 .%SIN用于为信号设置信号处理程序。只含有在perl脚本中设置的信号量。
 .%INC含有通过do或require包含的每个文件名的项目。key 是文件名,value是文件的实际位置。

 发表于: 2007-05-06,修改于: 2007-05-06 17:54 已浏览900次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.01328

京ICP证041476号