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"打開文件出錯(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!
【編輯推薦】