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















 
 
 
 
 
 
 