CSV を扱うには Text::CSV_XS をつかいます。
use Text::CSV_XS;
my $csv = Text::CSV_XS->new({binary => 1, eol => $/});
open my $fh, "<:utf8", $file or die "$file: $!"; #">
while (my $row = $csv->getline($fh)) {
my @fields = @$row;
# なにか処理をする
}
上記のように書きましょう。とっても簡単ですね。 (binary => 1 をつけわすれると、日本語の扱いがうまくいかないので、気をつけましょう)
my @data = (
[qw/a b c/],
[qw/d e f/],
[qw/g h i/],
);
my $csv = Text::CSV_XS->new({binary => 1});
for my $row (@data) {
$csv->combine(@$row) or die $csv->error_diag();
print $csv->string(), "\n";
}
CSV データの出力もとても簡単です。
Last modified: $Date: 2008-05-22T09:21:23.154313Z $