編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

CSV入出力

CSV読取り

use utf8;
binmode STDOUT, 'encoding(utf8)';
use Text::CSV_XS;

my $file = $ARGV[0];
my $csv = Text::CSV_XS->new( { binary => 1, eol => "\r\n" } );
open my $io, "<:encoding(sjis)", $file or die $!;
while ( my $row = $csv->getline($io) ) {
   my ( $id, $name ) = @$row;
   print "$id $name\n";
}
close $io;
$csv->eof or die $csv->error_diag();
  • CSVファイルは文字コードSJIS、改行コードCRLFとし、画面端末はUTF8とする。

CSV書き出し

my @rows = (
   [ '"1"', "a,b", "c\nd" ],
   [ '"2"', "a,b", "c\nd" ],
   [ '"3"', "a,b", "c\nd" ],
);
my $csv = Text::CSV->new( { binary => 1 } );
open( my $fh, '>:encoding(utf8)', "test.csv" ) or die $!;
foreach my $r (@rows) {
   $csv->combine(@$r);
   say $fh $csv->string();
}

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2011-01-03 (月) 17:32:22 (2573d)