收藏 分享(赏)

perl学习.docx

上传人:j35w19 文档编号:6331037 上传时间:2019-04-07 格式:DOCX 页数:15 大小:26.14KB
下载 相关 举报
perl学习.docx_第1页
第1页 / 共15页
perl学习.docx_第2页
第2页 / 共15页
perl学习.docx_第3页
第3页 / 共15页
perl学习.docx_第4页
第4页 / 共15页
perl学习.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、第一章 Perl 的简单变量1.perl 共含有 4 种变量:简单变量 Scalar:$ 数组:散列 Hash:% 文件:一般大写2.简单变量的名字$var_区别大小写;长度不限;没有关键字,但不能和内置变量重复;3.数值变量1)整数的表示12;12e2;-12;1_200_000;012 八进制 0 开头;0x1f 十六进制 0x 开头表示 15 为的有效数字,16 位后截断;2)浮点数表示11.4;-0.2;.3;3.;5.4e2;指数范围-309308,太小的话显示为 0,太大的话显示为 1.#INF(无穷大);4.字符串变量一般由双引号或者单引号标示的一组字符串。长度没有限制;“”双引

2、号1)变量替换$var=”str”;最长匹配$str=“short”,$string=“long”$stringlong$string shorting2) 转义字符a;b;e;cn;f;l;n;r;t;u;v;3)反斜线作用转义字符;取消字符含义: $ ” ;nnn 八进制表示的 ASCII;xnn 十六进制表示的 ASCII;单引号作用不进行变量替换;没有字符转义;字符可以跨行;的作用 ;字符串的特殊表示方法qq(string):相当于“string”q(string):相当于()可以换成标准输入,ctrl-d 结束输入;改变元素的值,$a1=3;超出数组大小的元素时,中间为空;元素的读取

3、:$a=a2;($x,$y,$z)=a;数组的读取:$a=a,取数组的长度;($a )=a,取第一个元素$#a 最后一个元素的下标;长度需要加 1;可读可写,改变数组长度;数组的输出:print a;元素相连;print “a”元素之间有空格;sub=a1,3元素交换 a1,2=a2,12.数组操作函数Sort代码块或函数名(a)顺序排列;反序排列 reversea;Chopa 每个元素截取最后一个字符;Shift(a)删除数组第一个元素,返回删除的元素;Unshift(a,$a)在数组开头增加元素,返回新数组的长度;Push (a,$a)在数组的末尾增加元素;Pop(a)在数组的末尾删除元素

4、。Join(连接符,a)把数组连接成一个字符串;Split(/ 模式/ ,分割串,长度)Wantarray()当期望返回数组时为真,期望返回简单变量时为假;Splicesplice( a,skip,length,newlist)插入;grep(/pattern/, a)搜索匹配;map(expr ,a)对数组内的每一个元素进行 expr 运算,返回运算后的数组。元素用$_表示。二位数组:$a=1,2,3,a,b,c访问其中的一维数组$a-0;元素的方位$a-00;第六章 关联数组(hash,散列)1,数组的优缺点;优点:元素内容可以从下标得到。缺点:元素内容与位置没有关系。关联数组中元素内容与

5、位置相关。元素内容数组值,位置由下标换为任意简单变量,实现了通过简单变量访问元素值。特点:有的位置可能为空。没有顺序。查找单个值,比数组慢。关联数组的形式:%h=(key1,1,key2,2) 或%h= (key1=1,key2=2);元素$hkey1;Delete $h$k删除;$a=%h 返回 x/y。表示散列的长度为 y,已经有值得元素为 x。Keys(%h)取得间列表,Values(%h )返回值列表。Each(%h )循环;Exits 检测关键字是否存在 exists %hkey删除散列 undef %h第七章 文件文件描述符:用来代表文件的数字。它是系统资源,系统限制打开的文件描述

6、符的数量。Perl 只在某些系统调用时才使用它。文件句柄:功能同文件描述符,但是与文件描述符并不是一个东西。Perl 使用文件句柄代表文件。文件描述符与文件句柄相互转化:文件句柄 文件描述符:fileno(F);返回文件描述符文件描述符 文件句柄:open (F,”文件变量文件:存放在磁盘上,永久存储的数据。用于读写访问,访问前要先打开文件。结束后关闭文件。Open( HANDLE,”filename” )|die $!;成功返回非零,失败返回 0.HANDLE:文件句柄,文件变量。用来代表操作的文件。以字母开头,由字母、数字、下划线组成,不以$% 开头。一般用大写字母。缺省打开的句柄 STD

7、IN、STDOUT、STDERR,文件描述符为 0,、1 、2. 不用调用 open 就可以直接访问。STDIN 键盘输入,控制台。STDOUT 屏幕输出,显示屏。STERR 错误输出,显示屏。读写模式表示只写,如果不存在则创建文件,文件存在的话则清除内容再写。表示追加,写打开文件,文件不存在则创建,文件存在不清楚内容。+表示读写,可读可写,文件不存在则创建,文件存在则清除内容再写。+可读可写,文件不存在则创建,文件存在则追加。|管道Open( F,“cathello“)把文件 F 的输出(print F $a)作为 |后命令的输入。Open( F,“coom|“)把 comm 的输入作为 F

8、 的输入。文件名:filename 含有相对路径或绝对路径的文件名。不含路径的文件名前的空格可以忽略,但是有路径的文件名空格不能忽略。可以用变量代表文件名。复制文件句柄:open(F,“&STDOUT)写入 F 文件的内容都编程写入屏幕 STDOUT。使用文件描述符:open(F,“&3)把文件描述符复制成句柄。Open() |die “error $!“ 成功的话不执行 die,失败的话执行 die。Die(errstr)相 STERR 输出窒息错误信息串,然后退出程序。Warn($errstr)相 STDERR 输出信息,不退出程序。$!最后一次作物的信息。与 die,warn 结合使用。

9、Die($str)中最后没有n 时,输入自动添加“at 程序名 line 行号”。如果存在n 则没有添加信息,原样输出。Close(F)关闭文件。重新打开一个已经打开的文件时,隐含先关闭文件,再打开。程序退出时,自动关闭文件。关闭文件时才是真正的写文件。文件缓冲:写文件时,系统先写到文件缓冲区的内存中,缓冲满之后才开始写入文件。没满时,一般关闭时缓冲内容才开始写入磁盘,成为刷新。无文件缓冲:每次写都真正写入磁盘中,不经过内存。频繁的写入可能会影响性能。设置$|变量决定是否有文件缓冲,$|=1 无缓冲。仅对当前文件有效。设置另外的文件需要先用select(F )。Select(F)设置当前文件,

10、返回原文件句柄。设置完后再 select(OLD )返回源文件。其他文件打开函数:间接文件变量:用简单变量表示文件变量,代表文件变量名。Sysopen(H,name,model,priv)读文件:$line=读一行到 line 中,指针后移一行。缺省读到$_中。$/=n,为行间隔符,遇到它则为一行结束,行包含$/Chmop($s)去除标志,若行尾不含$/ 则不去除字符。可设置$/为其他字符。array=文件内容全部读出,每一样为一个元素。包括行结束符。Read(F,$in,len,$offset)Getc(F)命令行参数ARGV:全局变量,$ARGV0的第一个参数。,打开$ARGV0 中的文件

11、。无参数则打开 STDIN。2 Shift(ARGV ),元素数量减少一个。3 读打开的文件中的所有行。4 在读第二个参数表示的文件。文件尾检测 eof 和 eof()。写文件 print F (“str “)括号可以省略。Printf(“format str“,$a,$b.)Write 用于格式化输出。Syswrite(F, $date,length,$offset)文件权限和随机访问:Chmod(mode ,filelst)Mode 为 4 为 8 进制文件Chown( userid,groupid,filelist )改变文件的用户与组。Umask(maskval )返回原 mask。参

12、考 unix文件指针:Tell(F)当前文职。Seek(F,distance ,pos )定位到指定位置。F 文件句柄,pos=0 相对文件头, 1 相对当前位置,2 相对文件尾。Distance 相对 pos 位置表示的位置多少字节。文件测试-e 是否存在-s 是否为非空,返回文件长度-z 是否为空文件-T 是否为文本文件文件状态:Stat(file)返回文件状态的列表;Utime(acctime,modetime,filelist)修改时间戳,修改访问时间,返回成功修改的文件数。Glob:a=glob(“*.txt“)返回与模式匹配的所有文件目录。如果赋值给简单变量则一次返回一个文件。参数

13、可以是文件名或目录。?匹配单个字符*任何数目的字符ab表示 ab 中的任意一个a,b匹配 a 或 bTruncate(file,lenght):将文件的长度减小到 length 字节。Rename(old,new)成功返回 1,从一个目录转移到另一个目录。不检查 new 是否存在。可能破坏文件。文件连接:Link(文件名,链接名)穿件现有文件的链接硬连接,成功返回真。Synlink 符号链接,穿件现有文件的符号链接。指向文件名,而不是文件本身 。Readlink(linkname )跟踪符号链接,并返回指向的文件。否则返回空串。Unlink(filelist)删除文件或$_中的文件。返回成功删

14、除的文件数。目录操作:Opendir(dirvar,dirname)打开目录。Closedir(dir)关闭目录Readdir(dir)返回所有文件和目录。Chdir(dir)改变目录,返回原目录。成功为真,失败为假。Telldir(dir)当前目录。Seekdir(dir,loc)到指定的目录。Rewinddir(dir)目录位置指向目录第一项。Mkdir(dirname,permission)创建目录(名称,访问权限)Rmdir( dirname)删除空目录,成功真,失败假。第八章 正则表达式(模式匹配)Regular expression模式匹配,在字符串中寻找特定序列的字符。制定模式:

15、由斜线包含,/def/即模式 def。匹配运算符=匹配的话为真、否则为假!不匹配的话为真。否则为假正则表达式的使用:条件判断正则表达式只对简单变量匹配。如果是数组的话,用 grep(/abc/,a)对数组的每一个元素进行匹配。Split(/abc/,$line)根据模式匹配分割字符串模式匹配的三种类型:M/模式匹配,s/匹配并替换,tr/逐一替换模式匹配之一:字符匹配+,*,?,.,+一个或多个相同的前导字符(模式)。/de+f/指的是 def、deef、deeef 等。是对前一个匹配模式的重复,不是匹配后的字符的重复。如/deE+/指的是/deEeE./*匹配 0 个或者多个相同的字符?匹配

16、 0 个或 1 个前一个字符.匹配除换行外的所有耽搁字符,通常与*合用,.*匹配任意数量的字符。匹配指定数目的字符匹配指定的字符出现的次数,/de1,3f/指的是 def,deef 和 deeef。/de3f/指的是 deeef。/de3,f指的是不少于三个 e。/de0,3f/ 值不多于 3 个 e。贪婪规则:尽量匹配尽可能多的相同字符。*+?都是贪婪的。在重复符号后加个问号,可以让它不贪心。懒惰规则:模式匹配只要找到一个就停止,后面不再继匹配。模式匹配之二:选择匹配一组字符中的任意一个。/a012345c/ 将匹配 a 加一个数组加 c 的字符串。表示除了其之外的所有字符。如/ddef/不

17、能出现 d,e 字符字符|指定两个或多个选择来匹配模式。如/def|ghi/匹配 def 或 ghi转义符和定界符取消特殊字符的含义,/*/表示匹配* 。另外d 表示任意数字, D 表示数字外的任意字符w 任意单词字符W 任意非单词字符s 空白S 非空白定界符:或A 仅匹配字符串首 /def/仅匹配以 def 开头的字符串$或Z 仅匹配字符串尾 /def$/仅匹配以 def 结尾的字符串b 匹配单词边界B 匹配单词内部模式的重用模式变量在模式匹配后调用重用部分的结构可用$n,全部的结果,匹配模式用变量$&,包括不再括号中的。匹配之前的部分用变量$,匹配处之后的部分用变量$。也可以用列表一次取得

18、。匹配选项:g 匹配所有可能的模式,根据懒惰规则不加 g 只匹配一处。返回到数组中。匹配的循环:每次匹配会记住上次的位置。当匹配字符串改变时,重新开始搜索。当使用 g 时,可以用函数 pos 来控制下次匹配的便宜。$offset=pos($string);下一个匹配开始的位置。Pos($string)=newoffset 从此位置开始搜索匹配。I 忽略模式中的大小写: /de/i 匹配 de,dE ,De,DEM 将待匹配的行稍微多行,符号匹配字符串的其实或心一样的起始;$匹配任意行的末尾。S 将待匹配的串视为单行。”.”可以匹配n。O 仅执行一次变量替换。X 忽略模式中的空白。格式清晰。匹配符号的优先级。()+、*、?、$、b、B|扩展匹配模式基本形式(?pattern),pattern 是其作用的模式或子模式。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报