Perlテキスト処理・正規表現入門

非常に大きなファイルの処理 part.2 - 出力を見やすくしよう -

CSVのデータがすべて出力されたのは良いのですが、不格好ですね。

まず、2019,3,3000,1000$という表示になっていますので、ドルマーク($)を同じ行に表示させないようにしましょう。

プログラムを次のように書き換えます。

書き換えたプログラム(csv_read_new.pl)

#! /usr/bin/env perl
use strict;
use warnings;

while (my $line = <>) {
+  chomp $line;
  print $line;
+  print "\n";
}


左側にプラス記号(+)を付けた行が、追加した行です。プラス記号は目印なので、実際のプログラムには書かないでください。

実行してみると、ドルマークが改行されて表示されます。

year,month,sales,profit
2019,1,1000,800
2019,2,2000,900
2019,3,3000,1000
$

これで見栄えが良くなりましたね!

プログラムに興味のある方への補足

chomp $line;というのが、改行を除去するための文です。

このプログラムは、CSVファイルを1行ずつ読み込みますが、行には改行の情報も存在しています(正確には、改行コードというデータが行末に存在しています)。

改行の情報はプログラムで処理するには余計なことが多いので、chomp $lineで取り除きます。

print "\n";は、改行情報を表示するための文です。見栄えを整えるために、取り除いた改行の情報をプログラムで出力しています。

このように、改行の情報はプログラムで追加したほうが分かりやすくなります

目次