順に、先のサンプルプログラムの中身を説明します。

ファイルを開く open

my $fh;
open ($fh, '<:encoding(cp932)', 'text01.txt')
or die "ERROR: open: text01.txt: $!
"
;
まず $fh という変数を宣言していますが、これは「ファイルハンドル」と呼ばれる役目をする変数です。ファイルはプログラムからすると「家の外」に当るのですが、「ファイルハンドル」はその外への扉の名前のようなものだと思って下さい。

Perl のファイルハンドラ

Perl のファイルハンドラ


次に、open というのがファイルを開くためのコマンドです。続けて指定するのは、「ファイルハンドル用変数」、「開く方向と文字コード」、「ファイルの名前」です。ファイルの名前は、先ほど保存したテキストファイル名「text01.txt」をシングルクオートで囲って指定してあります。

「開く方向」というのは、ファイルを読み込むか、または書き出すかの指定の事です。読み込むときは「<」、書き出す時は「>」か「>>」を指定します。

文字コードは、Shift_JIS で保存されたファイルを扱う場合は「:encoding(cp932)」と指定して下さい。

その下にある「or die "ERROR: open: text01.txt: $! "」の行ですが、これは「うまくファイルが開けなかったら、エラーを出力して終了する」という指定をしています。ファイルの入出力は何かとエラーの出やすい部分ですので、ファイルを開く時は必ずこのチェックを付けて下さい。

ファイルを読み出す <$fh>

さて、「開く方向」として「<」を指定しましたので、$fh は「入力用ファイルハンドル」となっています。

「入力用ファイルハンドル」を利用すると、ファイルの中身を読み出すことができます。それが以下の「while(<$fh>)」の部分で、ファイルの中身を1行ずつ読み込んで画面に出力しています。
while(<$fh>){
print $_;
}

ファイルを閉じる close

ファイルの読み込みが終わったら、close と ファイルハンドル使ってファイルを閉じます。
close $fh;

>次は:ファイルの出力