Perl流程控制語句用法指南
本文和大家重點討論一下Perl流程控制語句的概念,在學(xué)習(xí)Perl語言的過程中,Perl流程控制語句是非常實用的知識必須要掌握,希望通過本文的學(xué)習(xí)你對Perl流程控制語句有初步的了解。
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($nameeq"bo")
- {
- print"mynameis$name\n";
- }elsif($nameeq"ji"){
- print"mylastnameis$name\n";
- }elsif($nameeq"liu"){
- print"myfirstnameis$name\n";
- }else{
- print"unkonw------!!!!!!!!!!\n";
- }
靈活使用Perl
條件表達式&&語句塊
這的確是個邏輯與操作,若條件表達式為“真”,要根據(jù)后面語句塊的執(zhí)行結(jié)果才能判斷整個邏輯與操作的結(jié)果,這樣就會執(zhí)行后面的語句;而當條件表達式為“假”,則整個表達式為“假”,不用考慮
后面語句塊的值。所以為假時的語句塊不被執(zhí)行。
open(FH,">filename")||die"打開文件出錯。";
這時整個表達式的含義是:當前面的語句執(zhí)行結(jié)果是“真”時,就不執(zhí)行后面的語句了;當前面的語句執(zhí)行出錯,結(jié)果是“假”時,就執(zhí)行后面的語句。這里die的含義是輸出出錯信息。
if語句的簡寫
- [root@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循環(huán)
for(初始語句,條件判斷語句,循環(huán)變量步進速度){
循環(huán)體語句
}
- [root@test-linuxtmp]#catpfor.pl
- #!/usr/bin/Perl-w
- for($i=1;$i<10;$i++){
- print"$i\n";
- }
#p#
Perl流程控制語句之while/until循環(huán)
while(條件表達式){
循環(huán)體語句
}
- [root@test-linuxtmp]#catpwhile.pl
- #!/usr/bin/Perl-w
- $i=1;
- while($i<10){
- print"$i\n";
- $i++;
- }
- 當條件表達式為“假”時,執(zhí)行循環(huán)體語句
- until(條件表達式){
- 循環(huán)體語句
- }
- #!/usr/bin/Perl-w
- $i=0;
- until($i>10){
- print"$i\n";
- $i++
- }
Perl流程控制語句之do{}while/until循環(huán)
do{
}while/until(條件表達式);
do{}while的語意是執(zhí)行循環(huán)體,直到條件表達式為“假”;而do{}until的語意是執(zhí)行循環(huán)體,直到表達條件式為“真”。
Perl流程控制語句之foreach循環(huán)
foreach標量(標量)
{
循環(huán)體語句
}
- [root@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$_;
- }
循環(huán)體控制next和last等完成。
- [root@test-linuxtmp]#catnext.pl
- #!/usr/bin/Perl-w
- @array=("a","b","c","d","e","f");
- foreach(@array){
- if($_ge"c"){
- last;##跳出循環(huán)
- }
- for($i=1;$i<7;$i++){
- if(($i%2)==1){
- next;##進行下一次循環(huán)
- }
- print"$_"x"$i";
- print"\n";
- }
- }
- print"\nDone!\n";
注:當外層循環(huán)變量大于等于“c”時,就跳出外層循環(huán),代碼執(zhí)行完畢:內(nèi)層循環(huán)中,當循環(huán)變量是奇數(shù)時,就不執(zhí)行打印操作,而執(zhí)行下一次循環(huán)。這樣就是下面的結(jié)果。
[root@test-linuxtmp]#./next.pl
aa
aaaa
aaaaaa
bb
bbbb
bbbbbb
Done!
【編輯推薦】