Unix_Linux脚本编程_ perl部分.doc

上传人:cl****1 文档编号:559849098 上传时间:2022-09-28 格式:DOC 页数:31 大小:201.51KB
返回 下载 相关 举报
Unix_Linux脚本编程_ perl部分.doc_第1页
第1页 / 共31页
Unix_Linux脚本编程_ perl部分.doc_第2页
第2页 / 共31页
Unix_Linux脚本编程_ perl部分.doc_第3页
第3页 / 共31页
Unix_Linux脚本编程_ perl部分.doc_第4页
第4页 / 共31页
Unix_Linux脚本编程_ perl部分.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《Unix_Linux脚本编程_ perl部分.doc》由会员分享,可在线阅读,更多相关《Unix_Linux脚本编程_ perl部分.doc(31页珍藏版)》请在金锄头文库上搜索。

1、Unix/Linux脚本编程: perl部分本部分共包括以下部分:1. 基本介绍2. 变量,语法2.1简单变量2.2perl中的数组2.3关联数组2.4其他运算符2.5基本输入输出2.6分支循环控制结构2.7perl函数2.8常用系统调用2.9文件操作3. perl的正则表达式3.1正则表达式的三种形式3.2正则表达式中的常用模式3.3正则表达式的八大原则4. perl的一些应用1: 基本介绍Perl 是 Practical Extraction and Report Language (实用摘录和报告语言)的简称,是由 Larry Wall 所发起的。现在其最新版本为5.0。Perl 的设计

2、目标是帮助 UNIX 用户完成一些常见的任务,这些任务对于 Shell 来说过于沉重或对移植性要求过于严格。Perl 语言中包含了 C、C+、shell,script、sed、awk 这几个语言的语法,它最初的目的就是用来取代 UNIX 中 sed/awk 与 脚本语言的组合,用来汇整信息,产生报表。因此 Perl 语言要远远比前面讲的 BASH 复杂和功能强大。Perl 的设计原则或者说 Perl 的设计哲学是以实用为第一优先,也就是力图使 Perl 语言容易使用、有效率、而且完整。Perl 是原先运行于 UNIX 和类 UNIX 系统,现在已可以方便地在OS/2,Windows 9x,Wi

3、ndows/NT等系统下运行。Perl 是一种解释运行的语言,和 BASH 程序一样,一般 Perl 程序的第一行需注明自己是一个 Perl 程序而不是 Shell 程序,所以一般将下面一行语句:#! /usr/bin/perl 作为文件的第一行。 Perl 由于引入了模块的设计思想,随着版本的改进,功能越来越强。现在 Perl 的功能已经超乎原先设计时的想象,几乎任何事都可以做到,也变成每一部工作站必备的标准工具了。Perl 最为著名的一点就是它对字符串的处理,由于 Internet 对文字信息处理的巨大需求,使得 Perl 的应用如日中天,而且 Perl 语言也的确是一个非常优秀的文字信息

4、处理语言。return2: 变量,语法2.1简单变量Perl 的 Hello World 是怎么写的呢?请看下面的程序:#!/usr/bin/perlprint Hello World这个程序和前面 BASH 的 Hello World 程序几乎相同,只是第一行换成了 #!/usr/bin/perl ,还有显示的时候用的是 print,而不是 echo。有了前面 BASH 基础和 C 语言的基础,许多 Perl 的知识可以很容易的就看懂和记住.简单变量是标量,是 Perl 处理的最简单的数据类型。标量可以是数字(如2,3或2.5e6), 也可以是字符串。Perl 中的标量变量以美元符号 $ 和

5、一个字母开始,后面可以跟字母、数字和下划线,Perl 的变量区分大小写,因此 $a 和 $A 是代表不同的变量。和 BASH 中不同的是 Perl 语言中的变量即使是在最初赋值的时候也必须在变量前面加上 $ 符号,而且 Perl 不要求 = 左右必须没有空格。虽然 Perl 中和 BASH 一样,没有变量类型的概念,我们还是可以把简单变量分为数值型和字符串型来理解。在赋值时,如果是赋值成字符串,则需要在字符串两边加上双引号(或单引号);如果是数值则就不用了,而且 Perl 中还可以接受8/16(以0开头/以0x或0X开头)进制的整数,还可以接受如 2.5,-6.3e5,-2.3-e6 这样的浮

6、点数。关于简单变量举例如下:$a=23; $a = How Are You?; $a = 010;(表示十进制的 8)$a = 0x10; 表示十进制的 16)$a = 0X10; 表示十进制的 16)和 C 语言类似,在双引号之中可以用反斜杠表示一些特殊转义字符,见下表:结 构含 义n换行r回车t水平置表符f换页符b退格v垂直置表符a响铃eEsc007任一八进制ASCII值(这里007表示bell)x7f任一十六进制ASCII值cC任一“控制”字符反斜杠双引号l下一字母小写L以后所有字母小写直到Eu下一字母大写U以后所有字母大写直到EE结束L和U另外在 Perl 语言里,我们常会看到 my

7、这样的变量定义,如:my $a = local var;这表示 $a 是一个程序块的局部变量。return2.2:perl中的数组数组是标量数据的有序列表。数组可以含从 0 个元素大小 直到 你计算机内存可以支持的大小。数组用括号内以逗号分隔的一系列元素来表示。如:a=(1,2,3,4,5)b=(fang,1971,166.111.164.166)在 Perl 中对数组变量和前面的简单变量的存储是在不同的空间中,对数组的引用需要在变量前加 符号。数组的赋值由下面几种用法需要注意:a=(1,2,3);# 初始化一个整数数组。$a=a;# 这里表示将数组 a 的长度赋给 $a,此时 $a 和 a

8、不是一个变量,他们不在一个存储空间里,引用时不会发生混淆。($a, $b, $c)=(1,2,3);# 这里表示将 1 赋给 $a;2 赋给 $b;3 赋给 $c;a=(a,b,c);# 初始化一个字符串数组。b=a;# 表示把数组 a 拷贝一份给数组 b,a 与 b 不享有共同的存储空间,他们彼此分离。c=(a,b);# 表示数组 c 拥有 a 和 b 的所有元素,仍然是一维数组,而不是发生了嵌套。($a,b)=a;# 表示变量 $a 等于数组 a 的第一个元素,b 拷贝了 a 的剩余元素。a=();# 表示产生或清空一个数组。($a)=b;变量 $a 等于数组 b 的第一个元素的值。bi引

9、用数组 b 的第 i 个元素。$bi如果 b 表示一个数组的话,其含义同上。$ai,j=x,y将数组 a 的第 i 和第 j 个元素赋值为 x 和 y。ai,j=aj,i将数组 a 的第 i 和第 j 个元素的值互相交换。return2.3:关联数组关联数组是 Perl 语言中特有的一种数据结构,是一个功能强大的数组,他与普通数组的不同在于关联数组不是通过整数下标来索引,而是通过“键值”进行索引。使用关联数组需要在变量前面加上 % 号,关联数组的格式如:%ARRAY=(key1,value1,key2,value2,key3,value3); 上面每个 key 都对应着一个 value。关联数

10、组是存在在另外一个存储空间中,不和简单变量以及数组相混淆。对关联数组的操作有如下规则: 在关联数组中增加、更改一对数据:ARRAYkey=value; 在关联数组ARRAY中加上一对 key-value,要在关联数组名称前加上 $ 号,而且 key 的名称要在 符号之间,最后再指定 key 所对应的 value 值。如果在这个关联数组中已经有这个 key 了, 就会更改这个 key 所对应的 value 。 keys(%array) 操作符可生成由关联数组 %array 中的所有当前关键字组成的列表。即返回奇数号元素(第1,3,5,7.个)的列表。values(%array) 操作符返回由关联

11、数组 %array 中所有当前值组成的列表,即返回偶数个列表。echo(%array) 操作符返回由 关键字/值对 构成的元素对列表。对同一数组再进行此操作时返回下一对值直至结束。若没有更多的对时,echo() 返回空表。 (这在打印全部列表中很有用) 删除一对在关联数组中的数据:delete $ARRAYkey; delete 是 Perl 所提供的函数,作用是删除关联数组中的一个 key 以及这个 key 所对应的 value。使用方法是在 delete 函数之后,指定关联数组中要删除的 key 名称。下面是一些关联数组操作的例子:%test=(one,fang,two,tsinghua)

12、; $a=$testone;# $a等于fang$b=$testtwo;# $b等于tsinghua$testtwo=yes;# %test=(one,fang,two,yes)index=keys(%test);# index=(one,two)content=values(%test);# content=(fang,yes)($index,$content)=echo(%test);# 此时 $index 的值为 one,$content 的值为 fang,再执行一次 $index 为值为 two,$name 的值为 yesa=%test;# 将关联数组 test 指定给数组 a,这时

13、a=(one,fang,two,yes)%b=a;# 将数组 a 指定给关联数组 b,这时 %b=(one,fang,two,yes)delete $testone;# 将关联数组中 key 值为 one 的一对 key-value 删除,这时 %test=(two,yes)%x=();# 把 %x 关联数组置空return2.4其他运算符:perl中针对数字的运算符与C语言中基本一致;在针对字符串的操作时, 有一些不同于C语言的操作.赋值(Assignment)运算符.=$str1.=$str2;$str1=$str1.$str2;将$str1这个字符串再加上$str2这个字符串之后,再指派

14、给$str1这个字符串x=$strx=$y;$str=$strx$y;重复$str字符串$y次,并反结果指派给str这个字符串算术(Arithmetic)运算符.$z=$x.$y;将$x字符串和$y字符串连接之后,再将结果指派给$z数值(Numeric Values)关系运算符$x$y如果$x大于$y,返回1的值,如果$x等于$y,否则返回0;如果 $x小于$y,则返回-1的值字符串(String Values)关系运算符符号范例说明gt$str1 gt $str2如果$str1大于$str2,返回1的值,否则返回0ge$str1 ge $str2如果$str1大于等于$str2,返回1的值,否则返回0lt$str1 lt $str2如果$str1小于$str2,返回1的值,否则返回0le$str1 le $str2如果$str1小于等于$str2,返回1的值,否则返回0

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号