perl 语言语句.doc_第1页
perl 语言语句.doc_第2页
perl 语言语句.doc_第3页
perl 语言语句.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

perl的语句都类似C If ( ) else while ( ) for ($count=1; $count = 5; $count+) # statements inside the loop go here if也不完全象C,C一条语句时可以去掉 ,但perl的if必须要带chomp($a=);if ($a=5) print ok;macglocalhost perltest$ ./tip.plsyntax error at ./tip.pl line 7, near ) printExecution of ./tip.pl aborted due to compilation errors. if ( ) elsif ( ) else 注意:是elsif不是elseif until循环 until ( ) foreach 针对数组每个元素的循环#!/usr/bin/perltmp=qw(aaa bbb kkk 9000);$i=0;foreach $tt(tmp) print no.$i is $tt,n;$i+;#!/usr/bin/perltmp=qw(aaa bbb kkk 9000);for($i=0;$iscalar(tmp);$i+) print no.$i is $tmp$i ,n;macglocalhost perltest$ ./tip.plno.0 is aaano.1 is bbbno.2 is kkkno.3 is 9000macglocalhost perltest$ ./tip.plno.0 is aaano.1 is bbbno.2 is kkkno.3 is 9000 循环控制 ,与C,SHELL完全不一样last 循环结束 与C中的break作用相同next 执行下一个循环 与C中的continue作用相同redo 重复此次循环 PERL特有的一个命令macglocalhost perltest$ vi tip.pl#!/usr/bin/perlprintinput:;$i=1;while(chomp($input=) print no.$i =;$i+;if($input eq q) print choose q n;last; elsif ($input eq n) print choose n next:;next; elsif ($input eq r) print redo :;redo; else print input ok n;print input:; macglocalhost perltest$ ./tip.plinput:xno.1 =input okinput:nno.2 =choose n next:w next语句直接循环结束,所以没执行print input:;no.3 =input okinput:qno.4 =choose q last, 循环结束 redo造成死循环的原因while(chomp($input=) print no.$i =;$i+;if($input eq q) print choose q n;last; elsif ($input eq n) print choose n next:;next; elsif ($input eq r) print redo :;redo; else print input ok n;print input:; macglocalhost perltest$ ./tip.plinput:r:no.2228 =redo :no.2229 =redo :no.2230 =redo :no.2241 =redo :no.2242 =redo :no.2243 =redo :no.2244 =redo :no.2245 =redo :no.2246 =redo :no.2247 =redo :no.2248 =redo :no.2249 =redo :no.2250 =redo :no.2251 =redo :no.2252 =redo :no.2253 =redo :no.2254 =redo :no.2255 =redo :no.2256 =redo :no.2257改成for循环,并把chomp($input=);移到循环体内 #!/usr/bin/perlfor($i=1;$i;chomp($input=);if($input eq q) print choose q n;last; elsif ($input eq n) print choose n n;next; elsif ($input eq r) print redo n;redo;print input ok n; macglocalhost perltest$ ./tip.plno.1 =xinput okno.2 =sinput okno.3 =rredono.3 =nchoose nno.4 =qchoose q结论:redo会取消循环大括号内到redo前的所有语句,然后再重新执行这些语句但不重新执行循环语句里面的循环判定语句,如while(chomp($input=),即redo只在循环体内转所以使用redo时,循环判定语句里尽量只放条件判断表达式,不要放执行语句。 传统的goto label; unless语句 if语句的反义词if 是判斷條件為真時做某事,unless 剛好相反unless (條件判斷為假) 做某些事情 . else 做另一些事情 . perl 也支持switch,但必须use模块#!/usr/bin/perl -wuse Switch;printinput:;$i=1;while(chomp($input=) print no.$i =;switch ( $input) case 1 print is number 1; case 2 print is number 2; else print must be 1 or 2; exit 0;$i+;print input:; macnm testpl$ ./testpl.plinput:1no.1 =is number 1input:2no.2 =is number 2input:3no.3 =must be 1 or 2=简化语句= 简化if语句-三元運算#!/usr/bin/perlchomp($j=);($j=10) ? printyesn:printnon;macglocalhost perltest$ ./tip.pl9nomacglocalhost perltest$ ./tip.pl10yessub max my ($a, $b) = _; ($a $b) ? $a : $b;en(W, $log) | die $!n; 最常用 等价于 if ( ! open(W, $log) print $!n; print the file $file is existn if (-e $file);#!/usr/bin/perlchomp($file=);print the file $file is existn if (-e $file);macglocalhost perltest$ lsgogo tip.plmacg

温馨提示

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

评论

0/150

提交评论