流れ制御

条件分岐

 条件分岐はif文を用います。

  例:
      $a = 0.5;
      if ($a > 1)
      {
        print 'Wolfgang';
      }
      elsif ($a > 0)
      {
        print 'Amadeus';
      }
      else
      {
        print 'Mozart';
      }


  出力結果:
       Amadeus

Cの場合と異なり、必ず{ }が必要なことに注意して下さい。ifと同様unlessも使用できます。
 

 

ループ

 ループを作るには、whileが使えます。

  例:
      $a = 0;          
      while ($a < 4)
      {
        print "count = $a\n";
        $a++;
      }

     出力結果:
           0
           1
           2
           3

同様にuntilも使用できます。また、ループ制御文last、nextも使用できます。
  例:
      $a = 0;
      while ($a < 10)
      {
        if ($a = 2)
        {
          next;
        }
        elsif($a == 3)
        {
          last;
        }
        print "count = $a\n";
        $a++;
      }
      continue
      {
        print "continue = $a\n";
        $a++;
      }
      print 'finished\n";

     出力結果:
           count = 0
           count = 1
           continue = 2
           finished

nextはcontinueブロックに処理を移すのに対し、lastはcontinueブロックの後に処理を移します。
 

 

for文、foreach文

 以下に例を示します。

  例:
      for ($i = 0; $i < 3; $i++)
      {
        print "count = $i\n";
      }

     出力結果:
           count = 0
           count = 1
           count = 2

  例:
      foreach $i ('Wolfgang', 'Amadeus', 'Mozart')
      {
        print "name = $i\n";
      }

     出力結果:
           name = Wolfgang
           name = Amadeus
           name = Mozart
  例:
      @a = ('Wolfgang', 'Amadeus', 'Mozart');
      foreach $i (@a)
      {
        print "name = $i\n";
      }

     出力結果:
           name = Wolfgang
           name = Amadeus
           name = Mozart