regular expression 2
正規表現その 2

5 章

入出力について教科書に従って説明します.

5.7 節

ファイルをプログラムから読み書きするとき,ファイルハンドルを使用する. pl ディレクトリに,任意のテキストデータからなるファイル text1.txt を作れ.

以下のサンプルプログラムを sample06_1.pl という名前で作成し,実行せよ

#!/usr/bin/perl -w
use strict;

open INFILE, "text1.txt";
while (<INFILE>) {
    chomp;
    print "It was $_ that I saw!\n";
}
close INFILE;

プログラム内でユーザが入出力用にファイルをオープンすることができる.

open INFILE, "< file1";
open OUTFILE, "> file2";
open APPEND, ">> file3";

は,上から file1 を入力用に開く, file2 を出力用に開く, file3 を追加出力用に開くという意味である.それぞれシェルに対して入力す る文字と同じ記号が使われている.> は一旦出力用ファイルを空にして 新しい内容だけを書き込むのに対し,>> は古い内容を残したまま,後 に新しい内容を追加する.< も > も付かない場合は < を指定した のと同じ意味になる.

5.8 節

ファイルのオープンは失敗する可能性がある.

open INFILE, "< file1"
  or die "Cannot open: $!";

をファイルオープンの構文と思い,毎回この構文を使ってオープンを行う.

この方法で sample06_1.pl のファイルオープン部分を書き直したものは 以下のようになる.

#!/usr/bin/perl -w
use strict;

open INFILE, "< text1.txt"
  or die "Cannot open: $!";
while (<INFILE>) {
    chomp;
    print "It was $_ that I saw!\n";
}
close INFILE;

書き込み用にエラーチェックつきでファイルをオープンしたいときは 以下のように書く.

open OUTFILE, "> text2.txt"
  or die "Cannot open: $!";

sample06_1.pl の出力を text2.txt というファイルに書き出すように するには以下のようにすればよい.

#!/usr/bin/perl -w
use strict;

open INFILE, "< text1.txt"
  or die "Cannot open: $!";
open OUTFILE, "> text2.txt"
  or die "Cannot open: $!";
while (<INFILE>) {
    chomp;
    print OUTFILE "It was $_ that I saw!\n";
}
close INFILE;
close OUTFILE;

課題5

5.13 練習問題を解け. 解答プログラムを添付メールとして提出せよ. メールの宛先は <hiroshi@tokai.ac.jp> とし, Subject (件名)を report perl 5 とせよ.


Updated in December 8, 2009, schedule, Yamamoto Hiroshi