ファイルを開く open
my $fh; open ($fh, '<:encoding(cp932)', 'text01.txt') or die "ERROR: open: text01.txt: $!\n" ;まず $fh という変数を宣言していますが、これは「ファイルハンドル」と呼ばれる役目をする変数です。ファイルはプログラムからすると「家の外」に当るのですが、「ファイルハンドル」はその外への扉の名前のようなものだと思って下さい。
Perl のファイルハンドラ
次に、open というのがファイルを開くためのコマンドです。続けて指定するのは、「ファイルハンドル用変数」、「開く方向と文字コード」、「ファイルの名前」です。ファイルの名前は、先ほど保存したテキストファイル名「text01.txt」をシングルクオートで囲って指定してあります。
「開く方向」というのは、ファイルを読み込むか、または書き出すかの指定の事です。読み込むときは「<」、書き出す時は「>」か「>>」を指定します。
文字コードは、Shift_JIS で保存されたファイルを扱う場合は「:encoding(cp932)」と指定して下さい。
その下にある「or die "ERROR: open: text01.txt: $!\n"」の行ですが、これは「うまくファイルが開けなかったら、エラーを出力して終了する」という指定をしています。ファイルの入出力は何かとエラーの出やすい部分ですので、ファイルを開く時は必ずこのチェックを付けて下さい。
ファイルを読み出す <$fh>
さて、「開く方向」として「<」を指定しましたので、$fh は「入力用ファイルハンドル」となっています。「入力用ファイルハンドル」を利用すると、ファイルの中身を読み出すことができます。それが以下の「while(<$fh>)」の部分で、ファイルの中身を1行ずつ読み込んで画面に出力しています。
while(<$fh>){ print $_; }
ファイルを閉じる close
ファイルの読み込みが終わったら、close と ファイルハンドル使ってファイルを閉じます。close $fh;
>次は:ファイルの出力