とほほの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の漢字コードをEUCにしておいて
if ($str =~ /[\x80-\xff]/) { print "全角文字が含まれてます"; }
書き出し
◆ 文字列を書き出す
◆ ダブルクォーテーションを含む文字列を書き出す
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;
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]);
}
◆ サブルーチンを呼び出す
◆ サブルーチンの中で使う変数をローカル変数とする
sub add {
local($ans);
$ans = $_[0] + $_[1];
return($ans);
}
その他
◆ 引数を解釈する
for ($i = 0; $i <= $#ARGV; $i++) {
print "$ARGV[$i]\n";
}
◆ 時間帯を日本時間に設定する
◆ プログラム強制中断の際の処理を記述する
$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