PERL语言培训(内部交流).ppt_第1页
PERL语言培训(内部交流).ppt_第2页
PERL语言培训(内部交流).ppt_第3页
PERL语言培训(内部交流).ppt_第4页
PERL语言培训(内部交流).ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PERL 语言培训,概述,一、Perl是什么?Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程。.Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。.与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。.Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不

2、具备的很多功能。Perl还支持sed到Perl及awk到Perl的翻译器。简而言之,Perl象C一样强大,象awk、sed等脚本描述语言一样方便。二、Perl在哪里?可到 三、运行用文本编辑器编辑好你的Perl程序,加上可执行属性:$chmod +x 就可以执行了:$./。如果系统提示:/usr/local/bin/perl not found,则说明你没有安装成功,请重新安装。注:你的程序的第一行必须为#!/usr/local/bin/perl(perl所在位置)。四、注释:注释的方法为在语句的开头用字符#,如:# this line is a comment注:建议经常使用注释使你的程序易

3、读,这是好的编程习惯。,Perl程序一般框架,#!/usr/bin/perl use strict; use ; my $a; my b; my %c; sub my_sub1 return .; #remark sth sub my_sub2 other statements;,框架部分说明,#!/usr/bin/perl 这里指出解释器perl的路径,这种写法只用于unix下,在windows下当注释处理 use strict; use ; 这部分相当于java里面的import,C里面的 #include,引用一些程序需要 用到的包文件。use strict 这句比较特殊,引用这句只是告

4、诉perl对程序作 严格的语法检查,建议脚本里面都带上这句。 my $va; my vb; my %c; 这是变量定义部分,my 是关键字,相对于vb里面的dim,不过如果没有 use strict;语句,则定义变量不用加上my关键字。引用变量的时候需要 注意,perl和c一样是大小写敏感的。,框架部分说明,#remark sth perl里用 # 号注释一行 块注释 perl里面注视一段代码 =remarkbegin 这里=号顶格写,后面紧跟以字母开头的字符串 statement 1; statement 2; =cut 这表示注视结束 statement n;,框架部分说明,sub my_

5、sub1 这是perl的子程序定义 Perl不分函数和过程,如果sub程序体里有显式的return语句,则由 该语句决定返回值,如果没有显式的return语句,则返回值为执行的 sub程序体里的最后一个语句的值。 sub定义时不需要指定参数及类型,如果调用的时候传递了参数 则所有的参数存放在数组 _ 里面, $_0,$_1分别对应第一、 第二个参数。 sub调用方式: sub_name,程序执行流程,perl跟java、c 不一样,没有main函数,perl脚本在解释执行时和 shell脚本一样,自顶向下,跳过sub定义部分依次执行,数据类型,标量 定义时用$标示 数组 定义时用标示 Hash

6、表 定义时用%标示 my $username = “oracle”; my tables = (“custome”,”order”); my %week = (1=monday),(2=tuesday); 任意一个标量变量可以赋值 整形、浮点型,字符串 数组变量的元素可以是不同的标量,也可以是数组、hash表,字符串特别说明,Perl中定义字符串可以用单引号,也可用双引号 my $username = oracle; my $passwd = “manager”; 二者的区别在于,双引号表达式中perl会对其中的变量先做解析替换 my $passwd = “$username” 这样,$pas

7、swd 实际上和 变量 $username 相等,如果口令就是$加字符username则可以用 my $passwd = $username 或者用双引号表达式,但需要对$符号做转义处理 my $passwd = “$username”; 注意:在双引号表达式中如果引用关键字譬如$,%,本身,则需要对其作转义处理,而在单引号表达式中不需要。转义方法就是在其前加上反斜杠 “”,操作符,一、算术操作符二、整数比较操作符三、字符串比较操作符四、逻辑操作符五、位操作符六、赋值操作符七、自增自减操作符八、字符串联结和重复操作符九、逗号操作符十、条件操作符,操作符特别说明,Perl操作符和c基本一样,需要

8、特别说明的是 字符串比较操作符 lt, gt, eq, le, ge, ne这点和shell脚本里的比较是一样的,在比较字符串的时候一定要用这些比较符,而不要用数值比较操作符,=,!= ,否则会出现意想不到的结果。 字符串连结和重复操作符 连接用 . : $a = “hello” . “,world” . $c; 重复用 x : $a = “a” x 3; #$a = “aaa”;,控制结构,一、条件判断二、循环:1、while循环 2、until循环 3、for循环 4、针对列表(数组)每个元素的foreach循环5、do循环6、循环控制 7、传统的goto语句三、单行条件 foreach循

9、环、循环控制、单行条件 foreach my $v (“1”,”abc”,10) print “$vn”; foreach (“1”,”abc”,10) print ; print “n”; #这两句等价于 print “$_n”; ,循环控制,Perl中跳出循环用last ,跳过循环体下面的语句用next 分别相当于c里面的break 和 continue for(;) last if(.); .; next if(); ,单行条件,这是perl比较特殊也是比较方便的语法 语法为statement keyword condexpr。其中keyword可为if、unless 、while或un

10、til,如:print (This is zero.n) if ($var = 0);print (This is zero.n) unless ($var != 0);print (Not zero yet.n) while ($var- 0);print (Not zero yet.n) until ($var- = 0) 虽然条件判断写在后面,但却是先执行的。,模式匹配,模式匹配是perl的优势,利用模式匹配perl能很方便的处理一些字串、文件 模式匹配在unix下shell脚本中用的也很普遍,它们的规则是通用的 匹配操作符 = 和 ! =检验匹配是否成功 ! 则相反 $str = “a

11、bcdefg”; print “字符串包含abc” if($str = /abc/); print “字符串不包含abc” if($str ! /abc/); 模式匹配中特殊字符 . 匹配任何字符() 模式内存 匹配开头+ * ? 出现次数 $ 匹配结尾 $ b B 锚 | 选项 范围,模式匹配,指定模式定界符 默认情况下,模式匹配用/ / 表示,也可以由 m 自行指定 如: $var = /abc/ $var = m!abc! $var = /abc/ $var = m!/abc/!,正则表达式例子,my $patFlt = *-+? *(1-9d*|0).?d* *$; my $patInt = *-+? *(1-9d*|0) *$; $patFlt 用来检验一个变量值是不是浮点型 $patInt 用来检验一个变量是不是整形值 my $in; while ($in = ) if ($in ! /$patInt/) print n error,please input a int valuen; else print n your input values is : $in; las

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论