0

Perl でメール メッセージのヘッダーを抽出したいと考えています。私は体を必要としないので、それらの解析に時間を費やしたくありません。

Email::Simple::Headerは便利そうに見えますが、通常のインスタンス化にはメール全体 (本文を含む) の解析が含まれます。だから私はこのようなヘッダーを丸呑みすることを考えていました

local $/ = "\n\n";
my $head = <>;
my $parsed = Email::Simple::Header->new($head);

これが最も効率的な方法ですか?

4

2 に答える 2

2

これでいつでも節約できるかどうかはわかりません。電子メールの本文は、Email::Simple によって解析されません。本体を確認するのは、 を呼び出してヘッダーから分割するときだけEmail::Simple::_split_head_from_body()です。これは、 で行っていることとほぼ同じことを行いますが$/ = "\n\n"、さまざまな種類の改行をより適切に処理します。

プログラムが電子メール本文の不必要な解析に膨大な時間を費やしているというプロファイリングの証拠がない限り (その中で解析するものが何であれ)、時期尚早の最適化を避け、Email::Simpleモジュールを普通に使用してください。

于 2013-07-11T12:05:25.233 に答える
1

長さ 0 の行は、メッセージの残りの部分からヘッダーを分離します。Perl スクリプトは、着信メッセージを最初の長さゼロの行まで単純に読み取ることができます。これがヘッダーです。

于 2013-07-11T15:45:43.467 に答える