Perlで超簡単ファイル入出力「ダイヤモンド演算子とリダイレクトがあればopen関数なんていらないのさ」

  • 4
    いいね
  • 0
    コメント

ファイル入出力といえば、open関数を使わないと思っているあなた、Perlではもっと簡単な方法が用意されているのよ。

ダイヤモンド演算子

「ダイヤモンド演算子」を使うと、標準入力あるいは、コマンドライン引数で受け取ったファイルから読み込める

# コマンドライン引数からファイルを渡す
perl script.pl file.txt
あるいは
# 標準入力からファイルを渡す
cat file.txt > perl script.pl

そして、スクリプトの方はこんな感じ。

# ダイヤモンド演算子を使って行読み込み
while (my $line = <>) {
  chomp $line;
  print "$line add some thing\n";
}

open関数を使って、読み込み用にファイルオープンしなくってもいいんよね。

リダイレクトでファイルへ出力

リダイレクトというLinuxやWindowsに標準で備わっている機能を使えば、print関数の出力を、ファイルにリダイレクトできる。

リダイレクトっていうのは、たとえば、画面のへの出力を、ファイルへの出力に切り替える機能だ。

先ほどのコマンドにちょっとつけたそう。「>」という記号を。

# コマンドライン引数からファイルを渡す
perl script.pl file.txt > output.txt
あるいは
# 標準入力からファイルを渡す
cat file.txt > perl script.pl > output.txt

これで、ファイルに出力できるんだね。

open関数を使わなくっても、ファイル入出力できるって、知ってた?