perl循环控制

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";}

foreach

foreach $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 label

OUT: 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:输出信息后不退出,只是报警

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

[email protected] :内部变量包含错误信息

时间: 2024-08-28 01:57:35

perl循环控制的相关文章

perl链接oracle数据库学习【一】:循环控制

#!d:/Python/bin/python __author__ = 'stone' #引入oracle支持包 import cx_Oracle import traceback from pip.backwardcompat import raw_input #定义函数 #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ def querysal(conn, emp

3、perl进阶

条件判断与循环结构(if (unless)  while(until) for foreach next last redo) if (unless)  数字关系运算符 关系运算符: 数字关系运算符(>,>=,<,<=,==,!=) 字符串关系运算符(gt,ge,lt,le,eq,ne) 数字中0是假,其余是真:字符中空字符串("")和字符串("0")是假,其余是真:未定义的undef是假. 例子:0.00是假,是0的另一种写法:"

Perl 学习笔记-高级控制结构

1.unless控制结构 类似于独立的else语句; 要么条件为真, 要么执行语句块内的代码;  unless(<condition>){code...;} 等价于  if(<condition>){}else{code...;}  也就是当条件为假是执行. unless (0) { print "Hello"; #Hello } 2. until控制结构 until就是改装过的while, 区别在于它在条件为假是执行代码块. $i = 2;$j = 10; u

perl基本语法

标量 标量是 Perl 中最简单的数据类型.大多数的标量是数字(如 255 或 3.25e20)或者字符串(如 hello或者盖茨堡地址). 数字 perl中所有数字内部的格式都是双精度浮点数. 浮点数 1.25 255.000 255.0 7.25e45 #7.25x10 的 45 次方(一个大整数) -6.5e24 # -6.5x10 的 24 次方(一个大的负数) -12e-24 #- -12x10 的-24 次方(很小的负数) -1.2E-23 #指数符号可以大写(E) 整数 0 200

perl之更多的控制结构

1.unless/if结构 unless 条件为假的时候 才执行语句块. eg: unless($fred =~ /^[A-Z_]\w*$/i){ print "The value of \$fred doesn't look like a Perl indentifier name.\n"; } 想让于: if(! ($fred =~ /^[A-Z-]\w*$/i)){ print "The value of \$fred doesn't look like a perl

Perl学习之四:语句(续)

循环控制:1.last 退出标签的语句块2.next 3.redo不推荐,循环次数不可控 4.goto不推荐.***************************************标签: 先定义一个 labellast|next|redo|goto label: last VS next 相当于C语言中的:last ==>breaknext ==>continue*************************************perl的continue语句:continue

初尝 Perl

本文将阐述以下几方面内容: 1.什么是Perl 2.Perl有什么用 3.Windows 下的Perl环境搭建 4.Perl 版Hello World 5.Perl 语法梗概 6.一些参考资料 什么是Perl Perl 是一门由 Larry Wall(拉里·沃尔)设计并实现的一门脚本语言,Larry Wall设计这门语言的最初的目的为了让UNIX 上得报表处理工作变得更方便.Perl 第一版的发行时间为 1987年(Python第一版的发行时间为 1991年.Ruby第一版的发行时间为 1995

[ Perl 6 ] 被取代的钻石操作符(&lt;&gt;)

[ Perl 6 ] 被取代的钻石操作符(<>) There is more than one way to do it. Perl 5中,如果要逐行读取一个文件的内容,你可能会写出下面的代码 while (<>) { chomp; print "It was $_ that I saw.\n"; } $ perl myscript.pl in 但是在Perl 6中,钻石操作符<>已经不再被支持,现在可以用下面的代码来完成上面的功能 for line

1.5编程基础之循环控制_29:数字反转

/* 1.5编程基础之循环控制 29:数字反转 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个整数,请将该数各个位上数字反转得到一个新数. 新数也应满足整数的常见形式,即除非给定的原数为零, 否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入 输入共 1 行,一个整数N. -1,000,000,000 ≤ N≤ 1,000,000,000. 输出 输出共 1 行,一个整数,表示反转后的新数. 样例输入 样例 #1: 123 样例 #2: -380 样例输出 样