ダイヤモンド演算子

2019/02/14更新

目次

ダイヤモンド演算子とは

Perlでファイル入出力を行なう際に使用する行入力演算子「<~>」は、通常、間に対象のファイルハンドルを挟むが、ファイルハンドルを挟まない空の行入力演算子「<>」のことを通称ダイヤモンド演算子という。

ダイヤモンド演算子は、標準入力を読み取れるので、標準入力<STDIN>の単なる省略形と思われがちであるが、そうではない。<STDIN>は純粋に標準入力だけであるが、<>は標準入力に加えて実行時引数で与えたファイルの中身も読み取ることができる。

ダイヤモンド演算子の使い方

例として、fileA.txtの中身をfileAfileB.txtの中身をfileBとする。また、sample.plを以下の通りとする。

# sample.pl
while (<>) {
    print;
}

ダイヤモンド演算子を使うことで、Linuxコマンドのように、引数でファイルを与えても、パイプで標準入力を渡しても同じように動作するプログラムを簡単に作ることができる。