ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:24.73KB ,
资源ID:6131278      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6131278.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Perl总结.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Perl总结.docx

1、Perl总结merge_range和write_unicode函数在直接使用列号或者行号表示区域时都以0开始,(0,0)表示A1,(0,1)表示B1但是用字母表示时却不一样。例如:A1,B5,一个就表示了具体的行号和列号$totalworksheet-write_unicode(0, 0, $maps-to_unicode(名称),$format);$totalworksheet-write_unicode(0, 1, $maps-to_unicode(总量),$format);第二章 标量与数据1. #!/usr/bin/perl 是系统中Perl所在的路径2. Perl程序并不需要变量声明

2、的部分,所有变量可以直接使用。但是如果想提前声明也可以。3. 换行符 n最好在每一行输出的信息的末尾加上换行符,使得程序执行完后SHELL的提示符出现在新的一行的开始,而不是在输出内容的后面。4. 反引号 运行一个外部命令,使用一对反引号来调用。反引号和单引号不同,注意别搞混了。5. perldoc -u -f atan2 d:/temp可以将命令执行结果和输出内容导入别的文件。6. 标量 SCALAR 用于称呼单件事物,是Perl中最简单的数据类型。类似于别的语言的常量和变量7. 双精度浮点数所有的数字都以这种形式存储和参加运算,不区分小数,整数或者浮点数等。 但是在程序代码中书写时还是可以

3、用各自的直接量来表示的。例如:浮点数直接量,整数直接量等8. 运算符+ - * /% 求余(取模)* 乘冥9. 字符串由可输入的字母,字符和数字任意组合而成。最短为空字符,长度无限制。字符串直接量有两种不同的形式:单引号和双引号内的字符串1)。单引号字符串中要表示多行数据时可以直接加入回车换行,按下“Enter”键。反斜线n不再表示换行,而是显示n除了单引号和反斜线以外,单引号内的所有字符都代表它们自己,包括换行符本身。2)。双引号内的字符串直接量,反斜线拥有更强大的,更完整的能力,可用来表示控制字符,也可以用八进制或者十六进制表示任何字符,实现双引号内的反斜线转义。双引号内的字符串可以实现变

4、量内插,单引号内的不能实现内插,但是可以外串。例如:$temp = “test string append”;print “The program is to $tempn”;print The program is to $temp.”n”;print The program is to .$temp.”n”;PAGE 3310. 字符串连接 用“.”句点符号连接多个字符串,实现拼接字符串重复 字符串 X 次数 实现将左边的字符串重复多次显示。左操作数是重复的 字符串,右操作数是重复的次数。先取整,如果小于1,则产生长度为0的空字符串。11. 接收从键盘输入的资料,必须以回车结束,所有最后一

5、个字符为回车符。、12. chomp操作符 去掉字符串末尾的回车符,只能去掉一个,就是最后的一个换行符。处理字符串变量时,它是去掉行末换行符的最佳方式。13. undef值 在赋值之前被使用时,该变量的值就是undef值,它不是空字符串或者0,但是根据变量的赋值可以将undef值当作空字符串或者0来处理。可以通过defined函数来判断是否为undef值。可以通过undef关键字来自己构造初始值为undef值的变量。14. defined函数 如果是undef,则返回假,否则返回真。第三章 列表与数组标量代表的是单数,列表和数组代表的是复数。列表是标量的有序集合,而数组是存储列表的变量。列表和

6、数组中的每个元素都是单独的标量变量,拥有单独的标量值,而且这些值是互不相关的,是有序的。各个标量变量的类型可以不一样,可以是数字,字符串,undef等的混合。每个元素是有序的,先后次序是固定。可以通过下标来访问。下标从0开始,没有上下限。如果超出,则得到undef值。1. 访问数组的元素2. 特殊的数组索引值 索引值可以超出数组的索引范围,超出时可以自动扩大数组,扩大产生的标量默认值为undef。3. 列表直接量 一对圆括号中用逗号隔开的一系列值。可以使用范围标识符.例如:(1.100) (5.1) 为空列表,仅向上计数,4. qw简写 可以建立简单的单词、字符串列表。每个列表标量相当于是单引

7、号内的字符串,忽略所有的回车符,空白,控制符等。用空白隔开的各个字符串,省掉单引号。定界符可以是圆括号和其他Perl允许的任何一对标点符号。如果是括号类的,左右可以不一样,但是如果是别的,则必须左右一样。5. pop/push操作符 pop的操作数和push的第一个操作数必须是数组变量,不能是列表直接量pop操作符 弹出数组的最后一个元素并从数组中删除push操作符 在数组的末端加入一个或者一串数据6. shift/unshift操作符 shift的操作数和unshift的第一个操作数必须是数组变量,不能是列表直接量shift操作符 弹出数组最左端的第一个元素并从数组中删除unshift操作符

8、 在数组的最左端加入一个或者一串数据pop/push操作符是对数组的末端处理,而shift/unshift操作符是对数组的最左端进行处理。7. Foreach中的循环控制变量并不是列表元素的复制品,而是列表元素本身,因此,循环中修改了控制变量,就相当于修改了列表元素。colors = qw /red green yellow white black/;print The Colors are colors.n;#打印修改前的COLORforeach $color (colors) $color = t$color; $color .= n;print The Colors are:n,colo

9、rs;输出结果:8. 默认变量 $_9. reverse操作符 使列表或者数组内容反序,但是不能直接修改它本身的参数内容,只能将反序结果传给别的变量。10. sort操作符 按照ASCII的码序,对列表或者数组内容进行排序。但是不能直接修改它本身的参数内容,只能将排序结果传给别的变量。11. 列表上下文和标量上下文如果是给列表(不论其元素个数)赋值,则是列表上下文;如果是给标量赋值,则是标量上下文。举例如下:标量上下文:$fred = something;$fred3 = something;123 + somethingsomething + 456if (something) while

10、(something) $fredsomething = something列表上下文:给列表赋值或者是作为参数列表时一定是列表上下文fred = something;($fred,$bag) = something;($test) = something;push fred,something;foreach $fred (something) sort somethingreverse somethingprint something在列表上下文中使用产生标量的表达式,如果表达式结果为标量值,则自动产生一个仅含此标量的列表。undef是标量值,所以将undef赋值给数组时并不会清空该数组,

11、而是产生一个仅有一个未定义元素的列表。要清空数组或者列表时,直接赋值一个空列表就可以。test = undef;clear = ();强制指定标量上下文scalar伪函数 第四章 子程序一 定义子程序sub 子程序名 定义时子程序名以字母、数字和下划线组成,有时也可包含“与号”,但是不能以数字开头。子程序可以重名,但是后面的将覆盖掉前面的子程序。二 调用子程序在程序中直接通过子程序名(可以包含“与号”)来调用。子程序被调用时一定是作为表达式的某一部分。所有的子程序都会有返回值,就是程序最后执行的表达式的值。不一定是最后一个语句。但是如果有return操作符,则会返回某个值,而且退出子程序。三

12、参数Perl子程序可以接收参数,就是在调用时将参数放在子程序名后的括号中,以参数列表的形式传递,并且Perl会自动将参数列表化名为特殊的数组变量_,该变量只在子程序执行期间有效。子程序可以访问这个数组,判断参数的个数和具体的值,访问参数元素的方式为:$_0, $_1.,但是这些变量和程序的自动变量$_没有任何关系。访问超出参数个数也无所谓,只是得到undef值而已,多余不用的参数也会自动略去不用。数组变量_是每个子程序的私有变量,独自拥有,互不影响,即使有全局的数组变量_,也不会混淆,各自独立。四 子程序的私有变量1. 通过my操作符定义子程序的私有变量。它也可以出现在Perl程序的任何位置,

13、用于定义任何语句块的私有变量。它只是改变变量的作用域,但是并不能更改变量所处的上下文。例如:my($num) = _;#列表上下文,$num中会被设为第一个参数值my $num = _;#标量上下文,$num中会被设为参数个数定义持久性私有变量 state $num = 0;但是,在Perl5.10中,对于数组和哈希类型的state变量,如果处于列表上下文,则不能进行初始化。目前,在列表上下文环境中初始化state变量是禁止的。例如:state array = qw / a b c d /;#错误2. my操作符后的括号表示了my操作符的操作范围。如果有括号,则表示改变括号内的所有变量的作用域

14、,如果没有括号,则只是对紧跟它的单个变量起作用。3. 所有新变量的值一开始都是空的:标量为undef,数组则为空列表。4. use strict; 编译命令 强制执行一些严格的,确保良好程序设计的规则。第五章 输入与输出一读取标准输入1.行输入 接收一行输入 行输入特例 标准输入流可以在处理程序的调用参数的时侯,使用钻石操作符来读取标准输入流。可以不是从键盘,而是从客户指定的位置读取。2.调用参数 系统会自动存在特殊数组ARGV中,其内容是由调用参数组成的列表。二标准输出1.print 读取列表中的所有值并输出到标准输出。在输出中直接使用数组和数组内插方式,输出的效果是不同的。直接使用数组进行

15、输出时,会将数组的元素一个接着一个的输出,中间没有空白和其他分隔符;而使用数组内插方式时,每个元素之间一定会有一个空白来分隔输出。例如:fred = qw /1 3 5 7 9 /;$cnt = fred;print The numbers count of (fred) is $cntn;#输出结果为列表的元素个数。print fred,n;#输出结果:13579print fredn;#输出结果:1 3 5 7 9print (2+3)*4;#输出结果为5. print ((2+3)*4);#输出结果为20. 注意:如果print后紧跟有左括号,则必须将要输出的内容全部放在右括号之前,否则

16、只会输出括号内的列表内容。三格式化输出printf1.% 按照顺序插入参数值%g 输出恰当的数值形式,它会按照需要选择浮点数,整数或者指数等形式%d 输出十进制整数,无条件舍去小数部分,而非四舍五入。%s 字符串内插%f 输出浮点数,可以按照需要四舍五入。格式为:%总长度.小数位数f% 可以输出真正的百分号 printf “The monthly interest rate is :%.2f%”,5.25/12;printf nThe monthly interest rate:%.2f%n ,5.25/12;#The output result is 0.44printf nThe mont

17、hly interest rate:%.2f%n ,5.25/12;#The output result is 0.44可以指定输出宽度。宽度为正值,则输出内容右对齐,如果为负值,则输出内容左对齐。如果超出指定宽度,系统自动扩展。2.数组和printfmy colors = qw /red green yellow white black/;my $format = I know the colors:n.(%10sn x colors);printf $format, colors;组合在一起:标量上下文获取数组长度 列表上下文获取数组内容printf I know the colors:n

18、.(%-10sn x colors), colors;四文件句柄 就是Perl程序中代表本身的Perl进程与外界I/O联系的名字。它只是这种联系的名字,不一定是文件名。 建议用全大写字母来命名文件句柄,以下6个除外:STDIN,STDOUT,STDERR,DATA,ARGV和ARGVOUT五say操作符行输出语句,自动输出一行内容并且在最后进行换行。第五章 哈希所谓哈希,就是一种特殊的数据结构,由哈希键和哈希值一一对应而形成的一批数据。其中哈希键必须是字符串,而且必须唯一的,不能重复,但是,每个键对应的键值却是可以重复的,而且类型不限。以哈希键进行存取。一访问哈希元素要访问哈希元素,格式如下:

19、$hash_name$some_key 哈希变量的命名和别的标识符一样,以字母,数字和下划线组成,不能以数字开始。哈希赋值$family_name“fred” = “aaaaa”;$family_name“merry” = “jing”;2.要访问整个哈希变量,用%哈希变量名哈希赋值:1)。%family_name = %name2)。胖箭头的使用 组成键值对%family_name = (“A” = 1, “B” = 2, “C” = 3, “D” = 4,) 3)。通过哈希键来赋值$family_name“fred” = “aaaaa”;$family_name“merry” = “jin

20、g”;二哈希函数1.keys和values函数keys函数 获取哈希键,形成哈希键列表values函数 获取哈希值,形成哈希值列表获取的两个列表中元素顺序不确定,但是这两个列表的各个元素却是一一对应,按顺序生成。这两个函数在列表上下文中,得到列表,如果在标量上下文中,则得到哈希键的个数。例如:%char = (A = 1,B = 2,C = 3,D = 4,);key = keys %char; #A B C Dvalue = values %char; #1 2 3 4$key1 = keys %char; #4$value2 = values %char; # 42.each函数获取哈希的

21、每个键值对。唯一适合用该函数的地方是while语句。while ($key1,$value1) = each %char) state $cnt = 0; $cnt +=1; print The hash $cnt Key/Value is:n$key1 = $value1n;哈希中的键值可以是undef,表示虽然有键,但是值却未定义。3.exists函数判断某个键在哈希中是否存在,返回真或者假。与它是否有值无关。例如:if (exists $charE) print The key already exists.n; else print The key dont exists.n;4.de

22、lete函数从哈希中删除该键及其对应的值。如果存在,直接删除,反之则结束删除动作,即相当于什么也不做,也不报错。例如:delete $char“A”;delete $char“E”;5.哈希值内插 可以将单一的哈希元素内插到双引号引起的字符串中,但是整个哈希的内插是不支持的。例如:#哈希元素插入foreach $person (sort keys %char) if ($char$person) print $person has $char$person items.n; 6.在双引号中需要转义才能输出本身的符号有: $ “ 7.%ENV哈希 系统内定哈希print PATH is $ENV

23、PATHn;print TEMP is $ENVTEMPn;print TMP is $ENVTMPn;第六章 漫游正则表达式王国正则表达式和shell的文件名通配(glob)类似,但是不一样,不能混淆。一 元字符1.点号. 任何单字符通配符,只能匹配一个字符,换行符除外。点号. 匹配单个点号.2反斜线在任何元字符前加上反斜线,就会使它失去元字符的特殊功能,只表示字符本身。3.星号* 乘法操作符 匹配它前面的内容零次或者任意次,只能是前面的内容重复出现多次或者零次。 4.点星结合 .* 可以匹配任意字符无限多次。戏称此组合是捡破烂模式,能够通吃所有字符串。5.+ 匹配前一个条目一次以上。 与*

24、不同,星号匹配前一个条目0次或者多次。6.? 匹配前一个条目一次或者0次。就是表示前面的条目可以不出现或者只出现一次。7.()圆括号或者小括号 进行模式分组 例如: /(fred)+/ fred fredfredfred. /(fred)*/ 可以匹配任何字符串,包括空串8.(。) 表示反向引用9.| 或 择一匹配二字符集简写1.d 代表任意数字的字符集 【0-9】2.w 代表单词字符 【A-Za-z0-9_】 由字母,数字和下划线组成的标识符。3. s 代表空白,相当于【ftnr 】,它等于是包含五种空白的字符集:换页、制表、换行、回车以及空格。 s* 匹配0个或者多个空白s+ 匹配一个以上

25、空白h 匹配横向空白,等价于【t 】v 匹配纵向空白,等价于【fnr 】R 匹配任何类型的断行三反义简写d = Dw = Ws = S/dA-Fa-f+/ 匹配十六进制数字/dD/ 复合字符集 匹配任意字符(包括换行符),匹配任何数字非数字字符/i 进行大小写无关的匹配/s 可以匹配任意字符,包括换行符/x 可以在/中加入空白和注释,注释也算空白,但是注释中不要出现匹配的定界符,容易搞混,以为模式的结束。四组合选项修饰符/isx 先后顺序不影响匹配的结果五 绑定操作符= 默认的情况下模式匹配的串是$_,使用绑定操作符,则能让Perl用右边的模式匹配左边的字符串,而非匹配$_。第八章 以正则表达

26、式进行匹配 m/ = /m() m m m % m+任何成对的定界符一 锚位 字符串开头$ 字符串结尾 /s*$/ 匹配空白行。b 单词锚位,匹配任何单词的首尾B 非单词边界锚位二不捕捉模式 (?:。)三命名捕捉(?PATTERN) 使用了捕捉标签,就可以随意移动位置或者加入更多的捕捉括号使用捕获串时的格式为:$+label,举例如下:#!c:/perl/bin/perl -d -wuse 5.010;my $name = Fred or Barney;if ($name = m/(?w+) (?:and|or) (?w+)/) say I saw $+name1 and $+name2.;四

27、模式测试程序 下面是一个有用的程序,用来检测输入的字符串是否能够被指定的模式检测通过。可以将所有输入一行行读入,然后以给定的模式去匹配。如果匹配成功,利用三个特殊的匹配变量($,$&,$)进行结果展示,否则会输出不匹配的信息。#Ctrl+Z退出輸入while () chomp; if (/merry/) #给定的模式 print Matched: /$ $/.n; else print No Match: |$_|n; 第九章 用正则表达式处理文本m/ 模式匹配 相当于搜索功能 s/ 先进行模式匹配和定位,然后替换。将前面的替换为后面的。s/匹配串/替换串/ 返回的是布尔值,成功为真,否则为假

28、。只能进行一次替换动作。例如:$_ = Hes out bowling with Barney tonight.;print $_n;s/Barney/Fred/;print $_n;s/g /g修饰符可以让s/进行所有可能的、不重复的替换,实现全局替换。s/s+/ /g 将任何连续的空白转换为一个空格。s/s+/g 删除开头的空白。s/s+$/g 删除结尾的空白。s/s+|s+$/g 同时删除开头和结尾的空白。一 不同的定界符1. s/ 有左右之分的,必须用两对,前后可以不一样,但是每对必须一致。如果用没有左右之分的,用三个就可以。例如:s#https:/#/http:/#sMerryMer

29、ry_JingsMerryMerry_Jings#Merry_Jing#二可选修饰符/s /i /x /g 是可选修饰符,也可以在替换运算模式中使用,修饰符的顺序不影响替换结果三 绑定操作符= 用绑定操作符可以为s/指定不同的目标四 大小写转换以下是在替换模式中可以使用的转义字符,也可以用在双引号内的字符串中。/U 转义字符,会将替换字符串中其后的字符全部转换为大写的。/L 转义字符,会将替换字符串中其后的字符全部转换为小写的。/E 转义字符,结束大小写转换。/l 只会影响其后的第一个字符/u 只会影响其后的第一个字符/u/L 全部转换为小写,但是首字母大写。五 split 操作符split 操作符用拆分模式串“扫过”指定的字符串,匹配成功后返回各个子串列表,拆分模式串的内容则不会出现在各个子串中。期间只要模式在某处匹配成功,该处就是一个子串的结尾,下一个子串的开头。如果匹配不成功,则返回原字符串。如果分隔符连续出现,则会出现空子串。split 操作符在转换后可能出现多个空子串,它保留开始的空子串,但是会省略结尾处的空子串。例如:#split 操作符

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1