# Copyrights 2001-2025 by [Mark Overmeer]. # For other contributors see ChangeLog. # See the manual pages for details on the licensing terms. # Pod stripped from pm file by OODoc 2.03. # This code is part of distribution Mail-Box. Meta-POD processed with # OODoc into POD and HTML manual-pages. See README.md # Copyright Mark Overmeer. Licensed under the same terms as Perl itself. package Mail::Message::Head::Subset;{ our $VERSION = '3.011'; } use base 'Mail::Message::Head'; use strict; use warnings; use Object::Realize::Later becomes => 'Mail::Message::Head::Complete', realize => 'load', believe_caller => 1; use Date::Parse qw(str2time); sub count($) { my ($self, $name) = @_; my @values = $self->get($name) or return $self->load->count($name); scalar @values; } sub get($;$) { my $self = shift; if(wantarray) { my @values = $self->SUPER::get(@_); return @values if @values; } else { my $value = $self->SUPER::get(@_); return $value if defined $value; } $self->load->get(@_); } #------------------------------------------- sub guessBodySize() { my $self = shift; my $cl = $self->SUPER::get('Content-Length'); return $1 if defined $cl && $cl =~ m/(\d+)/; my $lines = $self->SUPER::get('Lines'); # 40 chars per lines return $1*40 if defined $lines && $lines =~ m/(\d+)/; undef; } #------------------------------------------- # Be careful not to trigger loading: this is not the thoroughness # we want from this method. sub guessTimestamp() { my $self = shift; return $self->{MMHS_timestamp} if $self->{MMHS_timestamp}; my $stamp; if(my $date = $self->SUPER::get('date')) { $stamp = str2time($date, 'GMT'); } unless($stamp) { foreach ($self->SUPER::get('received')) { $stamp = str2time($_, 'GMT'); last if $stamp; } } $self->{MMHS_timestamp} = $stamp; } #------------------------------------------- sub load() { $_[0] = $_[0]->message->loadHead } 1;