第34回 Perlで小技2

Perlでファイルをopenするときは、以下のような感じで書きます。

ファイルを読み込む例

use strict;

open my $f, '<', 'hoge.txt';

while(<$f>){
  print $_;
}

< > という変わった記号(行入力演算子と呼ばれる演算子)と、whileのコンビで1行ずつ読み込みができます。
(このwhileの挙動も話しだすと長い。 whileの ( ) の部分はスカラーコンテキストです)


おっと、 hoge.txt という名前のファイルを開いていますので、
hoge.txt という名前のファイルを用意して置きましょう。

hoge.txt

aaa
bbbb
cccc

実行結果

aaa
bbbb
cccc


でもファイルを用意したり、openしたりといったことは、
試しに小さなプログラムを書いてみたりといったときには、面倒な作業です。
そういったときのために、

__DATA__

というのがあります。

__DATA__

__DATA__ より下に書いた部分は、すでにopenされたファイルのように扱えます。
行入力演算子を使って読み込むときは、

<DATA>

と前後の __ は省きます。

__DATA__ を使った例

use strict;

while(<DATA>){
  print $_;
}

__DATA__
aaaa bbb ccc
ddd eee fff
ggggggggggggg

結果

aaaa bbb ccc
ddd eee fff
ggggggggggggg