## とほほのperl入門（利用例編）

トップ > とほほのperl入門 > 利用例編

#### ■ 制御

◆ 条件判断する

    if ($xx > 100) {
        print "大きい\n";
    } else {
        print "小さい\n";
    }

◆ 10回処理を繰り返す

    for ($i = 0; $i < 10; $i++) {
        print "$i\n";
    }

#### ■ 文字列

◆ 文字を1文字ずつ処理する

    $str = "ABCDEFG";
    for ($i = 0; $i < length($str); $i++) {
        $c = substr($str, $i, 1);
        print "[$c] ";
    }

◆ 文字を1文字ずつ処理する(日本語対応)

    $str = "ABCDEFGあいうえお";   # 漢字コードはEUCとする
    for ($i = 0; $i < length($str); $i++) {
        $c = substr($str, $i, 1);
        if ($c =~ /[\x80-\xff]/) {
            $c = substr($str, $i++, 2);
        }
        print "[$c] ";
    }

◆ 行末の改行コードや空白を取り去る

    $str =~ s/\s*$//;

◆ 全角文字が含まれているか調べる

    # $strの漢字コードをEUCにしておいて
    if ($str =~ /[\x80-\xff]/) { print "全角文字が含まれてます"; }

#### ■ 書き出し

◆ 文字列を書き出す

    print "あいうえお\nかきくけこ\n";

◆ ダブルクォーテーションを含む文字列を書き出す

    print "<a href=\"index.html\">\n";
    print '<a href="index.html">';

◆ アットマークを含む文字列を書き出す

    print "foo\@abc.xyz";
    print 'foo@abc.xyz';

◆ 書式を指定して書き出す

    printf("%04d/%02d/%02d\n", $year, $month, $mday);

◆ 数行にわたる内容を書き出す

    print <<END_OF_DATA;
    あいうえお
    かきくけこ
    END_OF_DATA

◆ バッファをフラッシュする

    $old = select(OUT); $| = 1; select($old);

◆ ファイルをロックする

    open(OUT, "> file.txt");
    flock(OUT, 2);
    print OUT ".......\n";
    close(OUT);  # closeすると自動的にアンロックされる

#### ■ 配列

◆ 配列を用いる

    $xx[0] = "あああ";
    $xx[1] = "いいい";
    print "$xx[0]\n";

◆ すべての配列要素に対して処理する

    for $yy (@xx) {
        print $yy;
    }

#### ■ ファイル

◆ ファイルを読み出す

    open(IN, "xxxx.txt");
    while (<IN>) {
        print $_;
    }
    close(IN);

◆ ファイルのサイズを得る

    $size = -s $file;

◆ ファイルをバイナリモードで読み出す

    $size = -s $file;
    open(IN, $file);
    binmode(IN);              # Windowsで必要
    sysread(IN, $buf, $size);
    close(IN);

◆ ファイルが存在するか確認する

    if (-f $file) {
        print "ファイルは存在します。\n";
    }

◆ ファイルをロックする

    open(OUT, ">> outfile.txt");
    flock(OUT, 2);
    truncate(OUT, 0);
    print "....";
    close(OUT);

#### ■ サブルーチン

◆ サブルーチンを定義する

    sub add {
        return($_[0] + $_[1]);
    }

◆ サブルーチンを呼び出す

    $answer = &add(3, 5);

◆ サブルーチンの中で使う変数をローカル変数とする

    sub add {
        local($ans);
        $ans = $_[0] + $_[1];
        return($ans);
    }

#### ■ その他

◆ 引数を解釈する

    for ($i = 0; $i <= $#ARGV; $i++) {
        print "$ARGV[$i]\n";
    }

◆ 時間帯を日本時間に設定する

    $ENV{'TZ'} = "JST-9";

◆ プログラム強制中断の際の処理を記述する

    $SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = "sigexit";
    sub sigexit {
        # この部分に作業ファイル削除などの終了処理を記述する
    }

Copyright (C) 1997-2002 杜甫々
初版：1997年2月3日、最終更新：2002年2月24日
http://www.tohoho-web.com/wwwperl3.htm