入出力について教科書に従って説明します.
ファイルをプログラムから読み書きするとき,ファイルハンドルを使用する. 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 を追加出力用に開くという意味である.それぞれシェルに対して入力す る文字と同じ記号が使われている.> は一旦出力用ファイルを空にして 新しい内容だけを書き込むのに対し,>> は古い内容を残したまま,後 に新しい内容を追加する.< も > も付かない場合は < を指定した のと同じ意味になる.
ファイルのオープンは失敗する可能性がある.
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.13 練習問題を解け. 解答プログラムを添付メールとして提出せよ. メールの宛先は <hiroshi@tokai.ac.jp> とし, Subject (件名)を report perl 5 とせよ.