0

perlで2次元配列をcsvファイルに出力するにはどうすればよいですか?

たとえば、次元配列を次のように構築しました。

for my $i(0..100) {
    for my $j (0..50) {
        $data[$i][$j]=0;
    } 
}

そして、後で参照できるようにcsvファイルに出力したいと思います。そして、この csv ファイルを読み取って 2 次元配列に再構築する必要があります。次のようなコードを使用します。

my $outfilename="output.csv"; 
my $csv = Text::CSV->new;
open OUT , '<', $outfilename or die "Could not open $outfilename: $!";

while( my $row = $csv->getline( OUT ) ) { 
    push @output, $row;
}
close OUT;

これを行う効率的な方法は何ですか?

4

1 に答える 1

3

いつものように、CPAN はあなたの友達です: Tie::Array::CSVを使うことができます

ドキュメントの例は、必要なものとほとんど同じです。

use strict; use warnings;
use Tie::Array::CSV;
tie my @file, 'Tie::Array::CSV', 'filename';

# print $file[0][2];
$file[3][5] = "Camel";

効率に関しては、あなたの時間に関しては非常に効率的に見えます。このモジュールには、「特定のアクションは非常に非効率的である可能性があります [...] (for) たとえば、(un)shift-ing」という警告があります。ただし、あなたのケースが影響を受けるようには見えません。

于 2013-03-27T08:15:02.013 に答える