65535行ごとにファイルを分割する
実験とかで生成したCSVファイルが65535行超えてexcel2003で開けないことがしばしばあるので。
#!perl use strict; $ARGV[1] = 65535 unless $ARGV[1]; #第2引数を省略すると65535行ごとの分割に my $maxcol = pop @ARGV; my $output = $ARGV[0]; my $filecount = 1; my $colcount; $output =~ s/(\.\w+$)/$filecount$1/; open OUTPUT,"> $output" or die "can't create file:$!"; while(<>){ print OUTPUT $_; $colcount++; if ($colcount >= $maxcol){ $colcount = 0; close OUTPUT; $output =~ m/($filecount)\./; $filecount ++; $output =~ s/$1(\.\w+$)/$filecount$1/; open OUTPUT,"> $output" or die "can't create file:$!"; } }