




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 Perl 常用函数集锦 最近在研究 Perl ,发现 Perl 的确如 Larry Wall 所说“是一门极其有趣的语言”,然而,Perl 的价值远不止于此 “Perl对真实生活的反映-他的人性特征-是内建于这门语言的深厚的哲学结构。”Perl是第一个后现代的计算机语言,Wall说,“一个人造自然语言,模拟了程序员是如何思考的”。可以说,Perl沿着一门真实语言的道路发展,吸收了长期以来其他语言的优点 有一些Unix,一些c+,一些BASIC,一点这个,一点那个 . 如果其他任何人有一些新鲜、有用的东西,Perl会包含他。当Wall调用这些“后现代主义”的概念,他是指Perl的折衷、包容的方式 在每一个隐蔽处和裂缝中都可以找到的一点点真理的能力,同时不用使它自己被任何大的真理所包围。而众所周知,Perl 之所以被很多人所采用的原因,很大一部分在于它简洁的语法和对字符以及数组的超强控制功能,可以说它包含了“最大适度的灵活性和稳定性”,现在这里,石头整理并总结了网上的一些资料,以及自己总结出这篇文章,希望对所有的 Perl 爱好者有一定的帮助和参阅价值 指令: printf语法: printf Filehandle LIST说明: 在perl语言中也提代C语言中printf的语法,用法和C语言中的用法一模一样.如果把Filehandle省略的话 ,也一样会把STDOUT当成是内定的Filehandle.在为大家介绍printf函数之前,先让我们来看看printf函数中变换符号的字符.符号 其作用%c 字符%s 字符串%d 整数%f 浮整数%h 十六进制码%o 八进制码示例:printf(chomod%d%s ,755,cgi); 会将chmod 711 cgi加上换行显示于屏幕上。 指令:length语法:length($string)说明:求出字符串$string的字节(bytes)值。示例:$string=Perl5; $size=length($string); #这时$size=5; 指令:chop 语法:chop($url)说明:把最后一个字符删除。(也可以用类似结构chop(array)来删除数组最后一个元素)示例:$url=/huangjs/;chop($url); 这时$url=/huangjs 而这两行也可以写成chop($url=/huangjs/); 指令:substr语法:substr($string,offset,length) offset代表起始字符的位置,length代表引用的字符串长度,如果省略length则代表从起始值到字符串的最后一个字符长度。而offset如果是负值的话,就会从字符串右边开始指定字符。示例:$s=substr(perl5,2,2); #这时$s=rl;$s=substr(perl5,2); #这时$s=rl5;$s=substr(perl5,-2,2); #这时$s=er; 指令:split语法:split(/pattern/,$text,limit) 其中/pattern/是文字处理的模式,而limit是代表要分割的个数,一般可以省略。说明:用一个指定的文字处理模式来分割$text字符串。示例:$text=Michael,Gevin,Mike; name=split(/,/,$text); #这时name=(Michael,Gevin,Mike); ($a,$b,$c)=split(/,/,$text); #这时$a=Michael;$b=Gevin;$c=Mike; name=split(/,/,$string,2); #这时name=(Michael,Gevin);在传送CGI应用程序数据的时候会先将数据编码,其中会将FORM中第个数据字段 的数据内容用&这个符号隔开,所以在解码的时候就要以&这个符号为分割的字符,将每个数据字段分割出。例如: $text=Mike=A&Michael=B;name=split(/&/,$text); #这时name=(Mike=A,Michael=B); 而数据字段的名称和这个数据字段的值是用=这个符号来隔开,如果想取得数据 字段的名称和所对应的值的话,就用要=这个符号来分割数据字段,例如: $name=Mike=Michael; ($name1,$name2)=split(/=/,$list); #这时$name1=Mike;$name2=Michael; 指令:join语法:join($string,array)说明:与split恰恰相反:在一数组array的元素之间加上一指定的字符$string,并将结果返回。示例:array=(one,two,three);$total=join(:,array); 这时$total=one:two:three; 指令:index语法:index($string,$substring,position) $substring是要寻找的字符;position代表从哪一个位置开始寻找,假如省略position就从头开始找起。说明:返回所要找寻的字符在一字符串$string中的位置,如果在字符串中找不到字符的话,则会返回-1这个 值。示例:$s=index(perl5,p); #这时$s=0$s=index(perl5,l,2); #这时$s=3$s=index(perl5,perl); #这时$s=-1 指令:keys语法:keys(%array)说明:取出关联数组%ARRAY中全部的key。示例:%NAME=(1,mike,2,michael); readkey=keys(%NAMES); #这时readkey=(1,2); 指令:values语法:values(%array)说明:取出关联哈希数组%ARRAY中全部的value。示例:%NAMES=(1,mike,2,michael); readval=values(%NAMES); #这时readval=(mike,michael); 指令:reverse语法:reverse(array)说明:将数组array中的元素由后到前重新排列。示例:back=(A,B,C,D,E); back=reverse(back); #这时back=(E,D,C,B,A); 指令:sort语法:sort(array)说明:将数组中的元素由小到大排序,如果要由大到小排序的话,要加上reverse这个函数。示例:abc=(d,b,c,a); abc=sort(abc); #这时abc=(a,b,c,d);abc=(reverse sortabc); #这时abc=(d,c,b,a); 这个语法也可以写成abc=(reverse sort(abc);number=(5,2,10); number=sort(number); 上面示例用sort函数来排序数值的时,会出差错,因此要用下面到下面这一句。 number=(sort$a$bnumber); #这时number=(2,5,10); 指令:scalar语法:scalar(array)说明:获得数组array的长度。示例:abc=(d,b,c,a); $num=scalar(abc); #这时$num=4;指令:push语法:push(array,$string)说明:在数组array的最后附加新的元素 ($string)到数组array中。示例:array=(one,two); push(array,three); #这时$array=(one,two,three) 指令:pop语法:pop(array)说明:将数组(array)的最后一个元素删除,并将删除的元素返回。示例:array=(one,two); $rm=pop(array); #这时array=(one);而$rm=two; 指令:unshift语法:unshift(array,$string) 说明:在数组array的第一个元素前附加新 作者: 221.217.159.* 2010-1-1 11:26 - 2 Perl 常用函数集锦 的元素$string到数组array中。 示例: array=(one,two); unshift(array,three); #这时array=(three,one,two) 指令:shift语法:shift(array)说明:将数组array的第一个元素删除,并将删除的元素返回。示例:array=(one,two); rm=shift(array); #这时array=(two);而$rm=one; 指令:splice语法:1. splice(array,$position,$length,list);2. splice(array,$position,$length);3. splice(array,$position);说明:强大的复杂数组处理函数:用法1是先取走了数组$position起$length长度的元素,并在其原先位置插入list;用法2是删除数组$position起$length长度的元素;用法3是删除$position后面的所有元素。示例:array=(e1,e2,e3,e4);return=splice(array,1,2,(e11,e22,e33); 这时array=(e1,e11,e22,e33,e4); 指令:undef语法:undef(array)说明:将数组array变成一个空白数组。示例:array=(one,two); undef(array); #这时array就变为一个空数组了; 指令:grep语法:grep(EXPERSION,array) 或 grep FUNCTION array说明:功能强大的模式匹配函数。由于篇幅这里仅介绍将合文字处理模式(regular expression)的数组元素找出来的方法,以及在数组处理方面的部分功能。示例 1:intergers=(0,1,2,3,4,5,6,7,8,9);matches=grep($_5,intergers);#这时match=(6,7,8,9);示例 2:(去掉重复项)original=(1,1,2,2,3,3,4,4);duplicate=grep $marked$_+;$marked$_=1; original;#这时duplicate=(1,2,3,4);指令:map语法:map(&function,array) 或 map &function array说明:功能强大的数组操作函数。将一个输入数组做相应转换然后传给指定函数的输出数组。示例 1:intergers=(1,2,3);twiceAsBig=map($_*2,intergers);#这时match=(2,4,6);示例 2:(拼写错误的词组)my %dictionary = map $_, 1 qw(cat dog man woman hat glove);my words = qw(dog kat wimen hat man gloove);foreach my $word (words) if (not $dictionary$word) print Possible misspelled word: $word ;输出结果: Possible misspelled word: katPossible misspelled word: wimenPossible misspelled word: gloove指令:hex语法:hex($string)说明:将十六进制的数值转成十进制。示例: $decimal=hex(ff); 这时$decimal=255; 指令:rand语法:rand($interger)说明:常和函数srand搭配来取得一随机数,如果没有先宣告stand函数的话,则取出的常数值是一个固定值。这个语法会返回一个介于0和$interger之间的数值,如果$interger省略的话,则会返回一个介于0和1 的数值。示例:srand; #要先宣告srand函数,才能产生随机数的效果$int=rand(10); #$int的值会大于0而且小于10如果希望产生的乱数是整数的话,就要再加上int #这个函数$int=int(rand(10); #$int的值是一个整数,且值在0和9之间 指令:localtime语法:localtime(time)说明:可返回九个有关时间的元素,在写CGI应用程序的时候常会用到系统的时间,所以在此会详细介绍这个函 数的用法。示例: ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); 其中: $sec代表秒数0,59 $min代表分数0,59 $hour代表小时数0,23 $mday代表是在这个月的第几天1,31 $mon代表月数0,11,要将$mon加1之后,才能符合实际情况。$year从1990年算起的年数 $wday从星期六算起,代表是在这周中的第几天0-6 $yday从一月一日算起,代表是在这年中的第几天0,365 $isdst只是一个flag 知道这些变量之后,就可以在CGI应用程序中拿来应用了。此外,也可以用下面这一行指令在UNIX系统下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 29730-2025冷热水用分集水器
- GB/T 13790-2025搪瓷用冷轧低碳钢板及钢带
- 2025年残联会计准则实施能力模拟题
- 2025年科协会计考试模拟题及重点难点解析
- 2025年家政服务技能实操高级考核题集
- 2025年本科院校审计处面试模拟题及答案集
- 2025年充电桩运维工笔试模拟考试题
- 2025年安全员模拟测试题及答案练习册
- 2025年汽车美容技师技能认证考试试题及答案解析
- 2025年金融风控专家资格考试试题及答案解析
- 三农村电商创业融资指导手册
- 国际商务课件全套教程
- 22.3 实际问题与二次函数 课件 2024-2025学年人教版数学九年级上册
- 文言合集(1):120个文言实词小故事(教师版+学生版)
- 教科版(2024)小学科学一年级上册(全册)教案及反思(含目录)
- 【课件】2025届高三生物一轮复习备考策略研讨
- 中级会计师《经济法》历年真题及答案
- 新疆城市绿地养护管理标准
- 高职院校高水平现代物流管理专业群建设方案(现代物流管理专业群)
- 汉语言文学毕业设计开题报告范文
- 爱自己爱生命主题班会课件
评论
0/150
提交评论