perl中的控制語句及函數定義

來源:互聯網
上載者:User

1. 條件控制語句

if(條件運算式)

{

#語句

}

else

{

#語句

}

given…when結構形式為:

given (標量)

when() { }

when() { }

when() { }

when() { }

given語句的用法為:

#!/usr/bin/perl -wuse 5.010001;my $m=<STDIN>;given ($m){when (/[0-9]/) {print "it is a number\n";}when (/[a-z]/)  {print "it is a letter\n"}default  {print "\n";}}
2. 迴圈控制語句

(1)while (條件運算式)

{

# 迴圈體語句

}

(2)until (條件運算式)

{

# 迴圈體

}

(3)do

{

#迴圈體

}while(條件運算式)

(4)foreach標量(標量)

{

# 迴圈體

}

foreach的簡單使用執行個體為:

#!/usr/bin/perl -w

foreach $m (1..10)

{

print "$m\n";

}

(5)for迴圈語句與foreach等價

形式為

for(運算式;運算式;運算式)

(6)迴圈控制的next,last以及redo

next語句用於跳過本次迴圈,執行下一次迴圈,last語句用於退出迴圈,redo語句用於回到本次迴圈的開始。next與redo 的區別在於next會跳過本次迴圈。下面是三種語句的使用執行個體:

#!/usr/bin/perl -wuse 5.01;my $n;for($n=0;$n<10;$n++){say "$n";say "input a command:next,last or redo";my $com=<STDIN>;last if $com=~/last/;next if $com=~/next/;redo if $com=~/redo/;}

在上面的程式中,輸入last會跳出迴圈,輸入redo會再次列印本次迴圈的輸出,輸入next會列印下一個數字。

(7)上面講到的last僅僅能退出本層迴圈,如果想要退出多層迴圈,可以使用帶有標籤的語句。使用的例子為:

#!/usr/bin/perl -wuse 5.01;my $num;my $j;LABEL:for($num=0;$num<10;$num++){for($j=0;$j<$num;$j++){say "input a string";my $str=<STDIN>;if ($str=~/stop/){last LABEL;}say "you have input: $str";}}

在for迴圈的前面加了LABEL標籤,在內層迴圈中使用last LABEL就可以退出兩層迴圈了。上面的程式中輸入stop即可退出迴圈。

3. 函數的定義及使用

函數的基本形式為

sub <函數名>

{

# 函數體

}

如定義函數

sub hello

{

print “hello world\n”;

}

可以在意運算式中使用子程式名加上&來調用它,

#! /usr/bin/perl –wsub hello{print “hello world\n”;}&hello;

程式中出現hello,world

下面定義了guess函數,用迴圈語句實現猜數位功能:

#!/usr/bin/perl -wmy $n=100;my $num=int(rand($n));sub guess{do {print "input a number which is in the range of (0,100)";$number=chmop(<STDIN>);if ($number == $num){print "riht\n";}elsif ($number < $num){print "too low\n";}else {print "too high\n";}}while (1);}&guess;


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.