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;