Text::Parts 0.07
0.06も上げたのですが、微妙なところがあって、すぐに0.07をリリースしてしまった。
変わったところ。
Text::Partsにwrite_filesメソッド追加。
$s->write_files('file%d.csv', num => 4);
みたいな感じ。
# 0.06で追加したけど、0.07でインターフェースを変えてしまいました
Text::Parts::Partにwrite_fileメソッド追加。
foreach my $part ($s->split(num => 4)) { $part->write_file("filename" . $i++ . ".csv"); }
Text::Parts::Partにallメソッド追加
foreach my $part ($s->split(num => 4)) { my $all = $part->all; # $partの範囲全部 # ... }
ちなみに、実装順番は、紹介順の逆でした。
Parallel::ForkManagerと一緒に使う例も書いていることだし、実際試してみよう、と思って試してみたのですが、
スピードはforkしても、しなくても一緒でした。無駄に並列に動いているのでCPUの損です!
同一ディスク上だから、スピード上がんないよってことかな。RAID上だったら、もしかしたら意味あるかもしれません。
追記: もちろん、ループ内での処理が非常に遅い(大量データをDBへinsertとか)なら並列実行に意味はあるかと思います。
ちなみに、3Gのファイルを40個に分割して書きだすのは、2分くらいかかりました(読み書きとも同一HDD)。