您好,欢迎访问三七文档
PERL语言培训概述一、Perl是什么?Perl是PracticalExtractionandReportLanguage的缩写,它是由LarryWall设计的,并由他不断更新和维护,用于在UNIX环境下编程。.Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。.与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。.Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awk到Perl的翻译器。简而言之,Perl象C一样强大,象awk、sed等脚本描述语言一样方便。二、Perl在哪里?可到下载。三、运行用文本编辑器编辑好你的Perl程序,加上可执行属性:$chmod+xprogram就可以执行了:$./program。如果系统提示:/usr/local/bin/perlnotfound,则说明你没有安装成功,请重新安装。注:你的程序的第一行必须为#!/usr/local/bin/perl(perl所在位置)。四、注释:注释的方法为在语句的开头用字符#,如:#thislineisacomment注:建议经常使用注释使你的程序易读,这是好的编程习惯。Perl程序一般框架#!/usr/bin/perlusestrict;use…;my$a;my@b;my%c;submy_sub1{…return..;}#remarksthsubmy_sub2{…}otherstatements;框架部分说明#!/usr/bin/perl这里指出解释器perl的路径,这种写法只用于unix下,在windows下当注释处理usestrict;use…;这部分相当于java里面的import,C里面的#include,引用一些程序需要用到的包文件。usestrict这句比较特殊,引用这句只是告诉perl对程序作严格的语法检查,建议脚本里面都带上这句。my$va;my@vb;my%c;这是变量定义部分,my是关键字,相对于vb里面的dim,不过如果没有usestrict;语句,则定义变量不用加上my关键字。引用变量的时候需要注意,perl和c一样是大小写敏感的。框架部分说明#remarksthperl里用#号注释一行块注释perl里面注视一段代码=remarkbegin这里=号顶格写,后面紧跟以字母开头的字符串statement1;statement2;…=cut这表示注视结束statementn;框架部分说明submy_sub1{}这是perl的子程序定义Perl不分函数和过程,如果sub程序体里有显式的return语句,则由该语句决定返回值,如果没有显式的return语句,则返回值为执行的sub程序体里的最后一个语句的值。sub定义时不需要指定参数及类型,如果调用的时候传递了参数则所有的参数存放在数组@_里面,$_[0],$_[1]…分别对应第一、第二个参数。sub调用方式:&sub_name;dosub_name;sub_name程序执行流程perl跟java、c不一样,没有main函数,perl脚本在解释执行时和shell脚本一样,自顶向下,跳过sub定义部分依次执行数据类型标量定义时用$标示数组定义时用@标示Hash表定义时用%标示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”这样,$passwd实际上和变量$username相等,如果口令就是$加字符username则可以用my$passwd=‘$username’或者用双引号表达式,但需要对$符号做转义处理my$passwd=“\$username”;注意:在双引号表达式中如果引用关键字譬如$,@,%,\本身,则需要对其作转义处理,而在单引号表达式中不需要。转义方法就是在其前加上反斜杠“\”操作符一、算术操作符二、整数比较操作符三、字符串比较操作符四、逻辑操作符五、位操作符六、赋值操作符七、自增自减操作符八、字符串联结和重复操作符九、逗号操作符十、条件操作符操作符特别说明Perl操作符和c基本一样,需要特别说明的是字符串比较操作符lt,gt,eq,le,ge,ne这点和shell脚本里的比较是一样的,在比较字符串的时候一定要用这些比较符,而不要用数值比较操作符,==,,=,!=,否则会出现意想不到的结果。字符串连结和重复操作符连接用.:$a=“hello”.“,world”.$c;重复用x:$a=“a”x3;#$a=“aaa”;控制结构一、条件判断二、循环:1、while循环2、until循环3、for循环4、针对列表(数组)每个元素的foreach循环5、do循环6、循环控制7、传统的goto语句三、单行条件foreach循环、循环控制、单行条件foreachmy$v(“1”,”abc”,10){print“$v\n”;}foreach(“1”,”abc”,10){print;print“\n”;#这两句等价于print“$_\n”;}循环控制Perl中跳出循环用last,跳过循环体下面的语句用next分别相当于c里面的break和continuefor(;;){lastif(….);….;nextif(…);}单行条件这是perl比较特殊也是比较方便的语法语法为statementkeywordcondexpr。其中keyword可为if、unless、while或until,如:print(Thisiszero.\n)if($var==0);print(Thisiszero.\n)unless($var!=0);print(Notzeroyet.\n)while($var--0);print(Notzeroyet.\n)until($var--==0)虽然条件判断写在后面,但却是先执行的。模式匹配模式匹配是perl的优势,利用模式匹配perl能很方便的处理一些字串、文件模式匹配在unix下shell脚本中用的也很普遍,它们的规则是通用的匹配操作符=~和!~=~检验匹配是否成功!~则相反$str=“abcdefg”;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-9]\d*|0)\.?\d*[]*$';my$patInt='^[]*[-+]?[]*([1-9]\d*|0)[]*$';$patFlt用来检验一个变量值是不是浮点型$patInt用来检验一个变量是不是整形值my$in;while($in=){if($in!~/$patInt/){print\nerror,pleaseinputaintvalue\n;}else{print\nyourinputvaluesis:$in;last;}}其它内容关联数组/哈希表格式化输出文件系统Perl5中的引用/指针Perl的面向对象编程Perl5的包和模块Perl函数集Perl脚本实例通讯机ihub文件备份例子功能:把ihub备份目录下的文件按日期打成tar包,压缩后备份到指定目录,并删除原文件;检查磁盘使用率,如果已经超过80%,则删除部分最旧的备份tar文件,以释放磁盘空间
本文标题:学习PERLPPT
链接地址:https://www.777doc.com/doc-5062918 .html