perl的控制語句和函數定義簡介

來源:互聯網
上載者:User

1. 條件控制語句

if(條件運算式)

{

#語句

}

else

{

#語句

}

given…when結構形式為:

given (標量)

when()  { }

when()  { }

when()  { }

when()  { }

given語句的用法為:

#!/usr/bin/perl -w  use 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 -w  use 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 -w  use 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";  }  }

查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/

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

3.  函數的定義及使用

函數的基本形式為

sub  <函數名>

{

# 函數體

}

如定義函數

sub hello

{

print “hello world\n”;

}

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

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

程式中出現hello,world

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

#!/usr/bin/perl -w  my $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;

作者:csdn部落格 零丁若歎

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.