设为首页 收藏本站
查看: 1015|回复: 0

[经验分享] Perl脚本学习----Perl流程控制语句用法指南

[复制链接]

尚未签到

发表于 2015-12-28 09:04:20 | 显示全部楼层 |阅读模式
  Perl流程控制语句
  条件选择语句1
  if(条件表达式){
语句块1;
}else{
语句块2;
}
  条件选择语句2
  unless(判别运算式)
{
语句2;
}else{
语句1;
}
  if条件语句嵌套
  if(条件表达式1)
{
语句1
}elsif(条件表达式2){
语句2
}elsif(条件表达式3){
语句3
}else{
语句4
}
  例:
#!/usr/bin/Perl-w  
  print "input?\n";  
$name=<STDIN>;  
  chop ($name);  
if($name eq "bo")  
  {  
print"my name is $name\n";  
  }elsif($name eq "ji"){  
print"my last name is $name\n";  
  }elsif($name eq "liu"){  
print"my first name is $name\n";  
  }else{  
print"unkonw------!!!!!!!!!!\n";  
  }  

  灵活使用Perl
  条件表达式&&语句块
  这的确是个逻辑与操作,若条件表达式为“真”,要根据后面语句块的执行结果才能判断整个逻辑与操作的结果,这样就会执行后面的语句;而当条件表达式为“假”,则整个表达式为“假”,不用考虑
后面语句块的值。所以为假时的语句块不被执行。
  open(FH,">filename")||die"打开文件出错。";
这时整个表达式的含义是:当前面的语句执行结果是“真”时,就不执行后面的语句了;当前面的语句执行出错,结果是“假”时,就执行后面的语句。这里die的含义是输出出错信息。
  if语句的简写
[iyunv@test-linuxtmp]#catifp.pl  
  #!/usr/bin/Perl-w  
$i=1;  
  #if($i<10){  
#  
  #print"$i<10\n";  
#  
  #}  
print"$i<10\n"if($i<10);  

  Perl流程控制语句之for循环
  for(初始语句,条件判断语句,循环变量步进速度){
循环体语句
}
[iyunv@test-linuxtmp]#catpfor.pl  
  #!/usr/bin/Perl-w  
for($i=1;$i<10;$i++){  
  print"$i\n";  
}  

  Perl流程控制语句之while/until循环
while(条件表达式){
循环体语句
}
[iyunv@test-linuxtmp]#catpwhile.pl  
  #!/usr/bin/Perl-w  
$i=1;  
  while($i<10){  
print"$i\n";  
  $i++;  
}  
  
当条件表达式为“假”时,执行循环体语句  
  until(条件表达式){  
循环体语句  
  }  
#!/usr/bin/Perl-w  
  $i=0;  
until($i>10){  
  print"$i\n";  
$i++  
  }  

  Perl流程控制语句之do{}while/until循环
  do{
  }while/until(条件表达式);
do{}while的语意是执行循环体,直到条件表达式为“假”;而do{}until的语意是执行循环体,直到表达条件式为“真”。
  Perl流程控制语句之foreach循环
  foreach标量(标量)
{
循环体语句
}
[iyunv@test-linuxtmp]#catforeach.pl  
  #!/usr/bin/Perl-w  
@array=(1,2,3,4,5);  
  foreach$i(@array){  
print"$i\n";  
  }  
#!/usr/bin/Perl-w#######有一个默认变量$_  
  @array=(1,2,3,4,5);  
foreach(@array){  
  print;  
}  
  
#!/usr/bin/Perl-w  
  @array=(1,2,3,4,5);  
foreach$_(@array){  
  print$_;  
}  
  
  循环体控制next和last等完成。
[iyunv@test-linuxtmp]#catnext.pl  
  #!/usr/bin/Perl-w  
@array=("a","b","c","d","e","f");  
  foreach(@array){  
if($_ ge "c"){  
  last;##跳出循环  
}  
  for($i=1;$i<7;$i++){  
if(($i%2)==1){  
  next;##进行下一次循环  
}  
  print"$_"x"$i";  
print"\n";  
  }  
}  
  print"\nDone!\n";  
  注:当外层循环变量大于等于“c”时,就跳出外层循环,代码执行完毕:内层循环中,当循环变量是奇数时,就不执行打印操作,而执行下一次循环。这样就是下面的结果。
  [iyunv@test-linuxtmp]#./next.pl
aa
aaaa
aaaaaa
bb
bbbb
bbbbbb
Done!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-157251-1-1.html 上篇帖子: Perl文件内容对比 下篇帖子: 【Perl】正则表达式元字符
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表