とほほのperl入門(利用例編)

とほほのWWW入門 > とほほのperl入門 > 利用例編
2000年5月7日版

制御

条件判断する

    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] ";
    }

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

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

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

    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) 1996-1999 とほほ
http://wakusei.cplaza.ne.jp/twn/wwwperl3.htm