perl初心者BLOG

2009-05-03

[][]ステートメント修飾子について 01:43

  • サンプルコード
~$ cat hoge.pl
#!/usr/local/bin/perl
$hoge = 5;
print '変数$hogeは5です' if ($hoge == 5)
  • 実行結果
~$ ./hoge.pl
変数$hogeは5です~$

ステートメント修飾子はショートカットともよばれるらしい。

ステートメント修飾子には、if以外にも以下のものがある。

unless
while
until

[][]?演算子(三項演算子) 01:43

C言語でいうところの三項演算子は、以下のようにして使う。

・サンプルスクリプト

~$ cat hoge.pl
#!/usr/local/bin/perl
print "1 + 1はいくら? : ";
$answer = <STDIN>;
chomp($answer);
print (($answer == 2) ? "正解です!" : "不正解!");

[][]ループの制御について(その2) 01:07

perl独特の文法としてlabelというのがあり、ループに名前がつけられる。

以下、独習PERLを参考に書いたサンプルスクリプト

~$ cat hoge.pl
#!/usr/local/bin/perl
LOOP1: while(1) {
        print "LOOP1開始します。\n";
        LOOP2: while(1) {
                print "LOOP2開始します。\n";
                LOOP3: while(1) {
                        print "LOOP3開始します。\n";
                        print "番号を入力してください:";
                        $number = <STDIN>;
                        chomp($number);
                        if ($number == 1) {
                                next LOOP1;
                        } elsif ($number == 2) {
                                next LOOP2;
                        } elsif ($number == 3) {
                                next LOOP3;
                        } else {
                                last LOOP1;
                        }

                }
        }
}

2009-04-28

[][]ループの制御について 23:36

  • last
    • C言語でいうところのbreak
  • next
  • redo
    • nextに似てるけど、評価は行わない。
  • exit
    • スクリプトを終了させる。一般的に正常終了の場合exit(0)とし、異常終了の場合exit(1)とする。exit()とした場合は、デフォルトで0が設定されるらしい。

2009-04-26

[][]perlのループについて 01:26

主に以下のパターンがある。

  • forループ
    • 省略
  • whileループ(条件が真の間、ループし続ける)
while() {
}
  • untilループ(条件が真になったら、ループを終了する)
until() {
}
  • do~whileループ
do {
} while();

※ 最後のセミコロンに注意

  • do~untilループ
do {
} until();

※ 最後のセミコロンに注意

[][]switchステートメントについて 01:12

perlにはC言語にあるようなswitchステートメントがない。

(追記)

perl5.10から追加されたgiven-whenで代用可能。

[][]unlessステートメント 01:09

  • サンプルコード
~$ cat hoge.pl
#!/usr/local/bin/perl
$county = "japan";
unless ($county eq "england") {
        print "country is not japan.\n";
}
  • 実行結果
~$ ./hoge.pl
country is not japan.

tokuhiromtokuhirom2009/04/27 12:40perl5.10 より switch-case 構文ににた given-when が導入されております。

py4s-tnkpy4s-tnk2009/05/09 13:08>perl5.10 より switch-case 構文ににた given-when が導入されております。
tokuhiromさん、貴重な情報ありがとうございますm(_ _)m