if

格式(类似于awk):if(表达式){                #空格可以忽略

语句 ;}                     #elsif注意多了个s,elsif和else可以省略

elsif(表达式){             #语句块的{}必须有,可以为空

语句:}

else{

语句;}

unless

格式:unless (表达式){

语句;}

while

格式:while(表达式){

语句;}

do while

格式:do {语句} while(表达式)

until

格式:until(表达式){

语句;}

do until

格式:do {语句} until(表达式)

for foreach

for和foreach等价可以互换

格式:

c语言风格for(表达式1;表达式2;表达式3){

语句;}

表达式可以省略分号必须保留:(;;)为死循环for($l=<>,$count=1;$count<10;$count++,$l=<>){

print "$l";}

foreachforeach $w (列表or数组){

语句;}

()中为@array或者列表(1,2,3)

$w为循环体的局部变量,并不会影响外部同名变量

循环体每次取数组或列表的元素直到为空

修改$w会修改对应元素的值;$w是列表数组元素的一个引用,与列表或数组变量引用具有相同内存地址,所以修改$w会修改其对应元素的值

列表中为常量,$w不可改变,$w只是对数组列表元素的一个引用,$w赋值时,$w指向新的内存对象,原列表中的值并不改变for $a(@a){}

for $a(1,2,3){}

for $k(keys%h){}

for $a(@a[1,2]){}

for (@a){}    #省略循环变量,缺省为$_

grep,map函数相当于for每个元素进行操作

循环控制

last 退出循环

next 执行下一次循环

redo 重新执行本次循环,for自增不进行,do语句中无效

goto 跳转,不能跳到循环或者子程序内

标记:

字母加下划线,通常用大写,以:分隔

标记定义:在循环语句前或者语句前(goto)

while for

跳转到标记: last|next|redo|goto labelOUT: while (...){

while(...){...

last OUT;    #跳转到OUT标识的语句块,这里是跳出这一层循环到外层循环

}

}

continue{语句}

跟在循环语句后,循环体执行完成,下一次条件判断前执行

{}标识语句块

last跳出后不执行,next执行;

单行条件语句与循环语句print $a if $a==0;#先判断条件在执行打印

print $a unless($a==0);

print $a while ($a==0);

#不要丢失对变量控制,防止形成死循环

print $a while ($a--==0);

print $a until ($a--==0);

|| && (用法同shell)$a==0 && print $a;

open(FD6,'file')||die "can't open file";#die函数,输出标准错误输出后推出

warn:输出信息后不退出,只是报警

$! :内部变量包含错误代码

$@ :内部变量包含错误信息

linux perl的while循环中ctrl+c失效,perl循环控制相关推荐

  1. R语言循环中break函数和next函数使用实战

    R语言循环中break函数和next函数使用实战 目录 R语言循环中break函数和next函数使用实战 #基础for循环 #带break的for循环

  2. Vue指令之v-for——迭代数组、迭代对象中的属性、迭代数字||v-for循环中key属性的使用

    v-for循环普通数组 v-for循环对象数组 v-for循环对象 v-for迭代数字 v-for循环中key属性的使用 <!DOCTYPE html> <html lang=&qu ...

  3. html页面如何循环遍历,遍历foreach循环中的HTML DOM元素

    5 个答案: 答案 0 :(得分:3) 您可以使用closest('tr')查找最近的父tr元素,然后使用index()获取行号.试试这个: $('td').click(function() { va ...

  4. matlab for 取数组,for循环中的MATLAB和单元格数组处理

    for循环中的MATLAB和单元格数组处理 我是MATLAB新手,想从数据库中提取一个单元格数组中的数据: sensors = [ 1] [23] [1] [ 0] [0.1000] [1x29 ch ...

  5. [vue] v-for循环中key有什么作用?

    [vue] v-for循环中key有什么作用? 四个字: 性能优化,简述: 让vue在更新数据的时候可以更有针对性的 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢 ...

  6. python循环中的else_python 循环中else的简单示例

    导读热词对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 众多语言中都有if else这对条件选择组合,但是在python中还有更多else使用的地 ...

  7. java sleep 循环_while循环中的Thread.sleep()

    我注意到NetBeans警告我在我的Java代码中使用while循环中的Thread.sleep(),所以我已经对这个主题进行了一些研究 . 主要问题似乎是性能问题,当计数器仍处于休眠状态时,你的状态 ...

  8. oracle双重for循环sql,Oracle 11g中for循环中的PL / SQL限制

    我有一个大约有3000万条记录的表,并且我想像这样循环遍历表中存在的记录: FOR i IN (SELECT * FROM tbl_items it Left join location lo ON ...

  9. Python入门--二重循环中的continue和break

    #二重循环中的break和continue #二重循环中的break和continue用于控制本层循环 ############################################# fo ...

最新文章

  1. [Asp.net 5] Options-配置文件(2)
  2. MySQL拦截器获取xml id_关于mybatis拦截器,有谁知道怎么对结果集进行拦截,将指定字段查询结果进行格式化...
  3. StarUML中时序图添加小人
  4. 如何在Ubuntu上使用MultiSystem创建多启动USB盘
  5. [USACO5.3]校园网Network of Schools
  6. centos php.ini redis,CentOS下安装Redis及Redis的PHP扩展
  7. C++11::遍历tuple中的元素
  8. (转载)将h.264视频流封装成flv格式文件(二.开始动手)http://blog.csdn.net/yeyumin89/article/details/7932431...
  9. Java并发编程实战_《Java并发编程实战》PDF版本下载
  10. java__斐波那契数列
  11. Linux基础(八)服务器RAID及配置
  12. 对比三菱, 横河PLC快速入门 第一章
  13. 查看oracle操作历史,查看操作历史记录
  14. 《神经网络与深度学习》编程笔记
  15. 手机怎么识别图中文字?这两个方法靠谱
  16. 【免费分享】论文查重软件(亲测好用!)
  17. ME3616-OPENCPU完整调试笔记
  18. CPU个数、CPU核心数、CPU线程数
  19. C#在图片框中显示一幅图片及其信息
  20. 详解:动态规划算法【Java实现】——背包问题

热门文章

  1. ogre研究之第一个程序(一)
  2. Exposing Windows Forms Controls as ActiveX controls
  3. 三年java经验应该会什么?
  4. ajax预加载html seo,前端性能优化 — JS预加载和懒加载
  5. scala中def_def关键字以及Scala中的示例
  6. 树莓派该文件名_树莓派:文本编辑器与文件
  7. ajax的模式_AJAX的完整形式是什么?
  8. python 5的倍数_查找所有低于1000的数字的和,这是Python中3或5的倍数
  9. C语言打印彩色字符——以(枚举法+字符串查找)为例展示
  10. Microsoft Visual C++ Runtime Library 错误解决办法