perl学习(8) 控制:unless,until,next,redo,last
2013-09-13 20:28
218 查看
Perl中实现了所有C 的操作符!
Perl力求代码最少!
unless($fred=~ /^[A-Z_]\w*$/i){
print “The value of \$fred doesn’t looklike a Perl identifier name.\n”;
}
else
{
print “match success\n”;
}
#大写字母或者下划线开头的字符串
until($j> $i){
$j *=2;
}
&error(“Invalidinput”) unless &valid($input);
$i *=2 unitl $i > $j;
print“”, ($n += 2) while $n <10;
&greet($_)foreach @person;
Perler 一般都喜欢少输入些字符。简写的形式读起来很像英文:输出这段消息,如果$n 小于0。
条件表达式虽然被放在后面,也是先被求值
print “I can count to $i;\n”;
}
对于Perl 解析器(parser)而言,关键字foreach 和for 是等价的。
for(1..10){ #实际上是foreach 循环,从1到10
print “I can count to $_!\n”;
}
#输出所有出现fred 的行,直到遇见_ _END_ _标记
while(<STDIN>){
if(/_ _ END_ _/){
#这个标记之后不会有其它输入了
last;
}elsif(/fred/){
print;
}
}
##last跳转到这里##
Perl 的5 种循环体分别是for,foreach, while, until,以及“裸”块{},last 对整个循环块其作用。
#! /usr/bin/perl -w
use strict;
use warnings ;
{
print "test1\n";
last;
print "test2";
}
这个和c是同样的,为了保证逻辑和维护的简明,尽量不适用goto
goto
逻辑或OR (||)
逻辑或||有另外的含义,perl里面成为:短路操作
my$last_name = $last_name{$someone} ||‘(No last name)’
即在%last_name 中不存在$someone时,$last_name = ‘(No last name)’
逻辑操作符还能用来控制结构
($m< $n) && ($m = $n);
($m> 10) || print“why it it not greater?\n”
Perl力求代码最少!
1.1.unless
unless的含义是:除非条件为真,否则执行块中的代码,和if正好相反unless($fred=~ /^[A-Z_]\w*$/i){
print “The value of \$fred doesn’t looklike a Perl identifier name.\n”;
}
else
{
print “match success\n”;
}
#大写字母或者下划线开头的字符串
1.2.until
将while 循环的条件部分取反until($j> $i){
$j *=2;
}
1.3.表达式修饰符
print“$n is a negative number.\n”if $n<0;&error(“Invalidinput”) unless &valid($input);
$i *=2 unitl $i > $j;
print“”, ($n += 2) while $n <10;
&greet($_)foreach @person;
Perler 一般都喜欢少输入些字符。简写的形式读起来很像英文:输出这段消息,如果$n 小于0。
条件表达式虽然被放在后面,也是先被求值
1.4.for
for($i=1; $i <=10; $i++){ #从1到10print “I can count to $i;\n”;
}
对于Perl 解析器(parser)而言,关键字foreach 和for 是等价的。
for(1..10){ #实际上是foreach 循环,从1到10
print “I can count to $_!\n”;
}
1.5.last
last 会立刻结束循环。(这同C 语言或其它语言中的“break”语句类似)。#输出所有出现fred 的行,直到遇见_ _END_ _标记
while(<STDIN>){
if(/_ _ END_ _/){
#这个标记之后不会有其它输入了
last;
}elsif(/fred/){
print;
}
}
##last跳转到这里##
Perl 的5 种循环体分别是for,foreach, while, until,以及“裸”块{},last 对整个循环块其作用。
#! /usr/bin/perl -w
use strict;
use warnings ;
{
print "test1\n";
last;
print "test2";
}
1.6.next
next 之后,又会进入下一轮循环(这和C 或者类似语言的“continue”相似)1.7.redo
循环控制的第三个操作是redo。它会调到当前循环块的顶端,不进行条件表达式判断以及接着本次循环。(在C 或类似语言中没有这种操作。)#!/usr/bin/perl -w use strict ; use warnings; #输入测试 my @words = qw{ fredbarney pebbles dinoWilma betty }; my $errors = 0; foreach(@words) { ##redo 跳到这里## print "Type the word $_: "; chomp(my $try = <STDIN>); if($try ne $_){ print "sorry ?That’s not right.\n\n"; $errors++; redo; #跳转到循环顶端 } } print "You’ve completed the test, with $errorserror\n";
1.8.标签块
Larry 推荐标签均大写。这会防止标签和其它标识符冲突,同时也使之在代码中更突出。同时,标签很少使用,通常只在很少一部分程序中出现。这个和c是同样的,为了保证逻辑和维护的简明,尽量不适用goto
goto
1.9.逻辑操作符
逻辑与AND(&&)逻辑或OR (||)
逻辑或||有另外的含义,perl里面成为:短路操作
my$last_name = $last_name{$someone} ||‘(No last name)’
即在%last_name 中不存在$someone时,$last_name = ‘(No last name)’
逻辑操作符还能用来控制结构
($m< $n) && ($m = $n);
($m> 10) || print“why it it not greater?\n”
1.10. 三元操作符
my$location = &is_weekend($day) ? “home”: “work”;相关文章推荐
- perl学习(8) 控制:unless,until,next,redo,last
- perl学习---控制:unless,until,next,redo,last
- Perl语言入门笔记 第十章 其他控制结构(unless,until,elsif,for,last,next,redo,and,or)
- unless,until, for, while, last, next,foreach redo
- perl last next redo区别
- Perl 学习笔记-高级控制结构.unless控制结构
- Perl Learning - 19 (last, next, redo, &&, ||)
- 学习perl的unless控制结构
- 学习perl的unless控制结构
- Perl学习记录(二) -- 逻辑控制
- Perl语言学习笔记 10 其他控制结构
- Perl学习笔记(7) --控制结构和目标操作
- Perl last和next的用法区别
- 【perl】学习手记(二)--流程控制
- Shell学习笔记(11)-流程控制之select、until语句
- Perl中的控制结构学习笔记
- linux shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select 学习笔记
- perl学习日记10更多控制语句
- perl 学习之 控制结构
- perl学习笔记四----流程控制