Perl-users.jp

CSV の取り扱い

CSV を扱うには Text::CSV_XS をつかいます。

CSV データをよみこむ

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 をつけわすれると、日本語の扱いがうまくいかないので、気をつけましょう)

CSV データをつくる

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 $