いろいろとCPANで遊んでいて
PerlでMIMEの処理をさせようと、モジュールをインストールして試してみる。
今まで、自前処理で行うことが多かったので、勉強がてら検索&TRY。
メール解析には「MIME::Parser」が便利そう。
ということで、入れてみる。
$ sudo perl -MCPAN -e shell
cpan[1]> install MIME::Parser
たったこれだけで、入るんだから楽なもんだ。
my $parse=MIME::Parser->new();
my $message = $parse->parse(*STDIN);
my $head = $message->head();
なんて処理を書いて、マルチパートなデータを食わせて、いろいろとテストしていたら、読み込んだメールデータをパースするたびに、ファイルを生成してくれる…。
txtとhtmlがわさわさと増えているじゃないか…。
つうことで、何かオプションが有るはずと思いつつ、探してみる。
「
MIME::Parser インスタンス設定 output_to_core」なんて記録を見つけた。
1をセットすると、parseデータをメモリ上に保持する。デフォルトでは解析結果のうちbody部(本文やマルチパートの添付ファイル)は即時ディスクに書き出し。
(perldoc では、巨大ファイルが添付された場合などでちょっとriskyとさ)
ということらしいので、セットしてテストしてみる。
$parse->output_to_core(1);
$parse->tmp_to_core(1);
$parse->tmp_recycling(1);
$parse->use_inner_files(1);
こんな感じで、書いておけば、オンメモリで作業してくれるらしい。
昔、メモリが少ない時の実装なんだろうな…なんて思いながら、現在の大量にメモリが使える時代に感謝!!
で、output_to_core(1)をセットして、テストすると作業ファイル等全く作らなくなった。
まあ、どでかいメールを食わせる予定はないので、メモリで処理してくれた方がありがたい。ファイルがディスクを食いつぶす心配もいらないし、消す作業も必要ない。
ただ、記述にあるように巨大な添付ファイルだけは注意しておこうと、今は思うけど、すぐ忘れそうなのでココに書くわけですww
CPANってやっぱりすごいな
と本当に思います。
車輪の再発明をしないということが、どれだけ素敵なことか…。
ただ、登録されているモジュールなんか多すぎて、探しきれなかったり、古かったり、使い方のわからないものも多いので、ある意味面倒なんだよね〜
なので、Amazonでちょこっと検索してみたら、「Perl CPAN モジュールガイド」なんてのが出ていたので、ポチりました。

さて、もう少しPerl遊びをしよ〜っとww
もしかして
返信削除my $filer=$parser->filer;
$filer->purge();
とか?