《perl编写genesis脚本摘要》由会员分享,可在线阅读,更多相关《perl编写genesis脚本摘要(23页珍藏版)》请在金锄头文库上搜索。
1、一 perl 是什么?二 perl 在哪里?三运行四注释一、Perl 是什么?Perl 是 Practical Extraction and Report Language 的缩写,它是由 Larry Wall 设计的,并由他不断更新和维护,用于在 UNIX 环境下编程。.Perl 具有高级语言(如 C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从 C 语言中借用来的。.与脚本语言一样,Perl 不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉 Perl 来运行而已。这意味着 Perl 对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。.P
2、erl 提供脚本语言(如 sed 和 awk)的所有功能,还具有它们所不具备的很多功能。Perl 还支持 sed 到 Perl 及 awd 到 Perl 的翻译器。简而言之,Perl 象 C 一样强大,象 awk、sed 等脚本描述语言一样方便。二、Perl 在哪里?Perl 通常位于/usr/local/bin/perl 或/usr/bin/perl 中。你可以在 Internet 用匿名 FTP免费得到它,如ftp:/prep.ai.mit.edu/pub/gnu/perl-5.004.tar.gz。安装过程为:(1)解压:$gunzip perl-5.004.tar.gz$tar xvf
3、 - /usr/local/bin/perl注:这需要系统管理员权限。三、运行用文本编辑器编辑好你的 Perl 程序,加上可执行属性:$chmod +x 就可以执行了:$./。如果系统提示:“/usr/local/bin/perl not found“,则说明你没有安装成功,请重新安装。注:你的程序的第一行必须为#!/usr/local/bin/perl(perl 所在位置)。四、注释:注释的方法为在语句的开头用字符#,如:# this line is a comment注:建议经常使用注释使你的程序易读,这是好的编程习惯。未完待续本教程为flamephoenix 翻译整理本教程欢迎下载、转载
4、和链接,转载必须保留本说明并保持文章完整。本教程不允许以任何形式用于商业用途。对本教程有何疑问、更正或建议请告诉我,谢谢。第二章 简单变量 一整型二浮点数三字符串基本上,简单变量就是一个数据单元,这个单元可以是数字或字符串。一、整型 1、整型 PERL 最常用的简单变量,由于其与其它语言基本相同,不再赘述。例:$x = 12345;if (1217 + 116 = 1333) # statement block goes here整型的限制:PERL 实际上把整数存在你的计算机中的浮点寄存器中,所以实际上被当作浮点数看待。在多数计算机中,浮点寄存器可以存贮约 16 位数字,长于此的被丢弃。整数
5、实为浮点数的特例。2、8 进制和 16 进制数8 进制以 0 打头,16 进制以 0x 打头。例:$var1 = 047; (等于十进制的 39)$var2 = 0x1f; (等于十进制的 31)二、浮点数 如 11.4 、 -0.3 、.3 、 3. 、 54.1e+02 、 5.41e03浮点寄存器通常不能精确地存贮浮点数,从而产生误差,在运算和比较中要特别注意。指数的范围通常为-309 到+308。例:#!/usr/local/bin/perl$value = 9.01e+21 + 0.01 - 9.01e+21;print (“first value is “, $value, “n“
6、);$value = 9.01e+21 - 9.01e+21 + 0.01;print (“second value is “, $value, “n“);-$ program3_3first value is 0second value is 0.01 三、字符串 惯用 C 的程序员要注意,在 PERL 中,字符串的末尾并不含有隐含的 NULL 字符,NULL 字符可以出现在串的任何位置。. 双引号内的字符串中支持简单变量替换,例如:$number = 11;$text = “This text contains the number $number.“;则$text 的内容为:“This
7、text contains the number 11.“.双引号内的字符串中支持转义字符Table 3.1. Escape sequences in strings.L、U、Q 功能可以由E 关闭掉,如:$a = “TLHIS IS A ESTRING“; # same as “This is a STRING“.要在字符串中包含双引号或反斜线,则在其前加一个反斜线,反斜线还可以取消变量替换,如:$res = “A quote “ and A backslash “;$result = 14;print (“The value of $result is $result.n“)的结果为:Th
8、e value of $result is 14.可用nnn(8 进制)或xnn(16 进制)来表示 ASCII 字符,如:$result = “377“; # this is the character 255,or EOF$result = “xff“; # this is also 255.单引号字符串单引号字符串与双引号字符串有两个区别,一是没有变量替换功能,二是反斜线不支持转义字符,而只在包含单引号和反斜线时起作用。单引号另一个特性是可以跨多行,如:$text = This is twolines of text; 与下句等效:$text = “This is twonlines o
9、f textn“; .字符串和数值的互相转换例 1:$string = “43“;$number = 28;$result = $string + $number; # $result = 71若字符串中含有非数字的字符,则从左起至第一个非数字的字符,如:$result = “hello“ * 5; # $result = 0$result = “12a34“ +1; # $result = 13.变量初始值在 PERL 中,所有的简单变量都有缺省初始值:“,即空字符。但是建议给所有变量赋初值,否则当程序变得大而复杂后,很容易出现不可预料且很难调试的错误。未完待续本教程为 flamephoen
10、ix 翻译整理本教程欢迎下载、转载和链接,转载必须保留本说明并保持文章完整。本教程不允许以任何形式用于商业用途。对本教程有何疑问、更正或建议请告诉我,谢谢。第三章 操作符一算术操作符二整数比较操作符三字符串比较操作符 四逻辑操作符五位操作符六赋值操作符 七自增自减操作符八字符串联结和重复操作符九逗号操作符十条件操作符 11 操作符的次序 一、算术操作符 :+(加)、-(减)、*(乘)、/(除)、*(乘幂)、%(取余)、-(单目负)(1)乘幂的基数不能为负,如 (-5) * 2.5 # error;(2)乘幂结果不能超出计算机表示的限制,如 10 * 999999 # error(3)取余的操作
11、数如不是整数,四舍五入成整数后运算;运算符右侧不能为零(4)单目负可用于变量: - $y ; # 等效于 $y * -1二、整数比较操作符 操作符 结果为:0 - 两个值相等1 - 第一个值大-1 - 第二个值大三、字符串比较操作符四、逻辑操作符 逻辑或:$a | $b 或 $a or $b逻辑与:$a .=作为子表达式($a = $b) += 3;等价于$a = $b;$a += 3;但建议不要使用这种方式。七、自增自减操作符 :+、-(与 C+中的用法相同).不要在变量两边都使用此种操作符:+$var- # error.不要在变量自增/减后在同一表达式中再次使用:$var2 = $var1
12、 + +$var1; # error.在 PERL 中+可用于字符串,但当结尾字符为z、Z、9时进位,如:$stringvar = “abc“;$stringvar+; # $stringvar contains “abd“ now$stringvar = “aBC“;$stringvar+; # $stringvar contains “aBD“ now$stringvar = “abz“;$stringvar+; # $stringvar now contains “aca“$stringvar = “AGZZZ“;$stringvar+; # $stringvar now contain
13、s “AHAAA“ $stringvar = “ab4“;$stringvar+; # $stringvar now contains “ab5“$stringvar = “bc999“;$stringvar+; # $stringvar now contains “bd000“ .不要使用-,PERL 将先将字符串转换为数字再进行自减$stringvar = “abc“;$stringvar-; # $stringvar = -1 now.如果字符串中含有非字母且非数字的字符,或数字位于字母中,则经过+运算前值转换为数字零,因此结果为 1,如:$stringvar = “ab*c“;$str
14、ingvar+;$stringvar = “ab5c“;$stringvar+; 八、字符串联结和重复操作符 联接: .重复:x联接且赋值(类似+=): .=例:$newstring = “potato“ . “head“;$newstring = “t“ x 5;$a = “be“;$a .= “witched“; # $a is now “bewitched“ 九、逗号操作符 其前面的表达式先进行运算,如:$var1 += 1, $var2 = $var1;等价于$var1 += 1;$var2 = $var1;使用此操作符的唯一理由是提高程序的可读性,将关系密切的两个表达式结合在一起,如
15、:$val = 26;$result = (+$val, $val + 5); # $result = 32注意如果此处没有括号则意义不同:$val = 26;$result = +$val, $val + 5; # $result = 27 十、条件操作符 与 C 中类似,条件?值 1:值 2,当条件为真时取值 1,为假时取值 2,如:$result = $var = 0 ? 14 : 7;$result = 43 + ($divisor = 0 ? 0 : $dividend / $divisor);PERL 5 中,还可以在赋值式左边使用条件操作符来选择被赋值的变量,如:$condvar
16、 = 43 ? $var1 : $var2 = 14;$condvar = 43 ? $var1 = 14 : $var2 = 14; 十一、操作符的次序 .操 作符结合性(associativity):建议:1、当你不确定某操作符是否先执行时,一定要用括号明确之。2、用多行、空格等方式提高程序的可读性。未完待续本教程为 flamephoenix 翻译整理本教程欢迎下载、转载和链接,转载必须保留本说明并保持文章完整。本教程不允许以任何形式用于商业用途。对本教程有何疑问、更正或建议请告诉我,谢谢。第四章 列表和数组变量一列表二数组-列表的存贮一、列表列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , “hello“ , 2),空列表:()。注:只含有一个数值的列表(如:(43.2) )与该