とほほの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