您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > perl编写genesis脚本
一perl是什么?二perl在哪里?三运行四注释一、Perl是什么?Perl是PracticalExtractionandReportLanguage的缩写,它是由LarryWall设计的,并由他不断更新和维护,用于在UNIX环境下编程。.Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。.与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。.Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awd到Perl的翻译器。简而言之,Perl象C一样强大,象awk、sed等脚本描述语言一样方便。二、Perl在哪里?Perl通常位于/usr/local/bin/perl或/usr/bin/perl中。你可以在Internet用匿名FTP免费得到它,如{{}}。安装过程为:(1)解压:$gunzipperl-5.004.tar.gz$tarxvf-perl-5.004.tar.gz(2)编译:$makemakefile(3)放置:将编译生成的可执行文件拷贝到可执行文件通常所在目录,如:$copycompiledexcutablefile/usr/local/bin/perl注:这需要系统管理员权限。三、运行用文本编辑器编辑好你的Perl程序,加上可执行属性:$chmod+xprogram就可以执行了:$./program。如果系统提示:/usr/local/bin/perlnotfound,则说明你没有安装成功,请重新安装。注:你的程序的第一行必须为#!/usr/local/bin/perl(perl所在位置)。四、注释:注释的方法为在语句的开头用字符#,如:#thislineisacomment注:建议经常使用注释使你的程序易读,这是好的编程习惯。未完待续本教程为flamephoenix翻译整理本教程欢迎下载、转载和链接,转载必须保留本说明并保持文章完整。本教程不允许以任何形式用于商业用途。对本教程有何疑问、更正或建议请告诉我,谢谢。第二章简单变量一整型二浮点数三字符串基本上,简单变量就是一个数据单元,这个单元可以是数字或字符串。一、整型1、整型PERL最常用的简单变量,由于其与其它语言基本相同,不再赘述。例:$x=12345;if(1217+116==1333){#statementblockgoeshere}整型的限制:PERL实际上把整数存在你的计算机中的浮点寄存器中,所以实际上被当作浮点数看待。在多数计算机中,浮点寄存器可以存贮约16位数字,长于此的被丢弃。整数实为浮点数的特例。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(firstvalueis,$value,\n);$value=9.01e+21-9.01e+21+0.01;print(secondvalueis,$value,\n);---------------------------------------------------------$program3_3firstvalueis0secondvalueis0.01三、字符串惯用C的程序员要注意,在PERL中,字符串的末尾并不含有隐含的NULL字符,NULL字符可以出现在串的任何位置。.双引号内的字符串中支持简单变量替换,例如:$number=11;$text=Thistextcontainsthenumber$number.;则$text的内容为:Thistextcontainsthenumber11..双引号内的字符串中支持转义字符Table3.1.Escapesequencesinstrings.\L、\U、\Q功能可以由\E关闭掉,如:$a=T\LHISISA\ESTRING;#sameasThisisaSTRING.要在字符串中包含双引号或反斜线,则在其前加一个反斜线,反斜线还可以取消变量替换,如:$res=Aquote\andAbackslash\\;$result=14;print(Thevalueof\$resultis$result.\n)的结果为:Thevalueof$resultis14..可用\nnn(8进制)或\xnn(16进制)来表示ASCII字符,如:$result=\377;#thisisthecharacter255,orEOF$result=\xff;#thisisalso255.单引号字符串单引号字符串与双引号字符串有两个区别,一是没有变量替换功能,二是反斜线不支持转义字符,而只在包含单引号和反斜线时起作用。单引号另一个特性是可以跨多行,如:$text='Thisistwolinesoftext';与下句等效:$text=Thisistwo\nlinesoftext\n;.字符串和数值的互相转换例1:$string=43;$number=28;$result=$string+$number;#$result=71若字符串中含有非数字的字符,则从左起至第一个非数字的字符,如:$result=hello*5;#$result=0$result=12a34+1;#$result=13.变量初始值在PERL中,所有的简单变量都有缺省初始值:,即空字符。但是建议给所有变量赋初值,否则当程序变得大而复杂后,很容易出现不可预料且很难调试的错误。未完待续本教程为flamephoenix翻译整理本教程欢迎下载、转载和链接,转载必须保留本说明并保持文章完整。本教程不允许以任何形式用于商业用途。对本教程有何疑问、更正或建议请告诉我,谢谢。第三章操作符一算术操作符二整数比较操作符三字符串比较操作符四逻辑操作符五位操作符六赋值操作符七自增自减操作符八字符串联结和重复操作符九逗号操作符十条件操作符11操作符的次序一、算术操作符:+(加)、-(减)、*(乘)、/(除)、**(乘幂)、%(取余)、-(单目负)(1)乘幂的基数不能为负,如(-5)**2.5#error;(2)乘幂结果不能超出计算机表示的限制,如10**999999#error(3)取余的操作数如不是整数,四舍五入成整数后运算;运算符右侧不能为零(4)单目负可用于变量:-$y;#等效于$y*-1二、整数比较操作符操作符=结果为:0-两个值相等1-第一个值大-1-第二个值大三、字符串比较操作符四、逻辑操作符逻辑或:$a||$b或$aor$b逻辑与:$a&&$b或$aand$b逻辑非:!$a或not$a逻辑异或:$axor$b五、位操作符位与:&位或:|位非:~位异或:^左移:$x1右移:$x2注:不要将&用于负整数,因为PERL将会把它们转化为无符号数。六、赋值操作符=可在一个赋值语句中出现多次,如:$value1=$value2=astring;.=作为子表达式($a=$b)+=3;等价于$a=$b;$a+=3;但建议不要使用这种方式。七、自增自减操作符:++、--(与C++中的用法相同).不要在变量两边都使用此种操作符:++$var--#error.不要在变量自增/减后在同一表达式中再次使用:$var2=$var1+++$var1;#error.在PERL中++可用于字符串,但当结尾字符为'z'、'Z'、'9'时进位,如:$stringvar=abc;$stringvar++;#$stringvarcontainsabdnow$stringvar=aBC;$stringvar++;#$stringvarcontainsaBDnow$stringvar=abz;$stringvar++;#$stringvarnowcontainsaca$stringvar=AGZZZ;$stringvar++;#$stringvarnowcontainsAHAAA$stringvar=ab4;$stringvar++;#$stringvarnowcontainsab5$stringvar=bc999;$stringvar++;#$stringvarnowcontainsbd000.不要使用--,PERL将先将字符串转换为数字再进行自减$stringvar=abc;$stringvar--;#$stringvar=-1now.如果字符串中含有非字母且非数字的字符,或数字位于字母中,则经过++运算前值转换为数字零,因此结果为1,如:$stringvar=ab*c;$stringvar++;$stringvar=ab5c;$stringvar++;八、字符串联结和重复操作符联接:.重复:x联接且赋值(类似+=):.=例:$newstring=potato.head;$newstring=tx5;$a=be;$a.=witched;#$aisnowbewitched九、逗号操作符其前面的表达式先进行运算,如:$var1+=1,$var2=$var1;等价于$var1+=1;$var2=$var1;使用此操作符的唯一理由是提高程序的可读性,将关系密切的两个表达式结合在一起,如:$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);PERL5中,还可以在赋值式左边使用条件操作符来选择被赋值的变量,如:$condvar==43?$var1:$var2=14;$condvar==43?$var1=14:$var2=14;十一、操作符的次序.操作符结合性(associativity):建议:1、当你不确定某操作符是否先执行时,一定要用括号明确之。2、用多行、空格等方式提高程序的可读性。未完待续本教程为flamephoenix翻译整理本教程欢迎下载、转载和链接,转载必须保留本说明并保持文章完整。本教程不允许以任何形式用于商业用途。对本教程有何疑问、更正或建议请告诉我,谢谢。第四章列表和数组变量一列表二数组--列表的存贮一、列表列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1,5.3,hello,2),空列表:()。注:只含有一个数值的列表(如:(43.2))与该数值本身(即:43.2)是不同的,但它们可以互相转化或赋值。列表例:(17,$var,astring)(17,262)(17,$var1+$var2)($value,Theansweris$value)二、数组--列表的存贮列表存贮于数组变量中,与简单变量不同,数组变量以字符@打头,如:@array=(1,2,3);注:(1)数组变量创建时初始值为空列表:()。(2)因为PERL用@和$来区分数组变量和简单变量,所以同一个名字可以同时用于数组变量和简单变量,如:$var=1;@var=(11,27.1,astring);但这样很容易混淆,故不推荐。1、数组的存取.对数组中的值通过下标存取,第一个元素下标为0。试图访问不存在的数组元素,则结果为NULL,
本文标题:perl编写genesis脚本
链接地址:https://www.777doc.com/doc-2849788 .html