15/20

KinoSearch, the code

    my $folder = Email::Folder->new($file_name);
    my $pos    = $folder->reader->tell();
    while (my $email = $folder->next_message()) {
	print $email->header('From');
	print "\n";
	my $doc = $invindexer->new_doc;
	for my $field (keys %fields) {
	    my $value =
		$field eq 'body'     ? $email->body
	      :                        $email->header($fields{$field});
	    $doc->set_value(
		$field,
		$value,
	    );
	}
	$doc->set_value('content', $email->as_string);
	$doc->set_value('position', "$file_name:$pos");
	$invindexer->add_doc($doc);
	$pos = $folder->reader->tell();
    }
    $invindexer->finish;