PerlならサンプルコードPerl入門

2008-07-27

ファイル名を指定してファイルに書き込む

  1. Perl
  2. ファイル入出力

 ファイル名を指定してファイルに書き込むには、書き込みモードでファイルをオープンして、print関数にオープンしたファイルハンドルを指定します。

open my $fh, '>', 'output.txt'

サンプル

 以下は、ファイル名を指定してファイルに書き込むサンプルです。

use strict;
use warnings;

# ファイル名をしたファイルへの書き込み
# 出力ファイル
my $out_file = "sample20080726_$$.txt";

open(my $out_fh, ">", $out_file)
  or die "Cannot open $out_file for write: $!";

# print 関数に出力先を指定する。
# $out_fh の後にカンマを入れないことに注意
print $out_fh "write to file\n"; 

close $out_fh;

コード解説

(1)書き込みモードでファイルオープンする
open(my $out_fh, ">", $out_file)
  or die "Cannot open $out_file for write: $!";

 ファイル名を指定してファイルを書き込むには、書き込みモードでファイルをオープンします。open関数の第2引数に、">"を指定します。

(2)ファイルに出力する
print $out_fh "write to file\n";

 ファイルへの出力はprint関数で出力先のファイルハンドル指定することによって行います。$out_fh の後ろにカンマがないことに注意してください。(print関数を使うときのルールです。)

 Perlではprint関数がreadline関数と対になります。ファイルへの出力はprint関数によって行います。

(3)通常は標準出力をリダイレクトする方法を使用すること

 編集するためのプログラムのような簡単なプログラムを作成する場合は、出力のためにファイルハンドルを開いたりはしません。

 print関数で標準出力に出力して、リダイレクトを使用してファイルに書き出すようにします。ファイルハンドルをオープンして書き込む場合は、複数のファイルに書き出す必要があるとき、書き出すファイル名が決まっている場合などです。