}
$size = -s $fn;
$line = <$file>; # first line
+ if ($size == 0 || !$line) {
+ dbg('err', "Empty $fn $!");
+ Log('err', "Empty $fn $!");
+ return undef;
+ }
chomp $line;
$size -= length $line;
if (! $line =~ /^===/o) {
next unless /^m\d+$/o;
$ref = read_msg_header("$msgdir/$_");
- next unless $ref;
+ unless ($ref) {
+ dbg('err', "Deleting $_");
+ Log('err', "Deleting $_");
+ unlink "$msgdir/$_";
+ next;
+ }
# delete any messages to 'badmsg.pl' places
if (grep $ref->{to} eq $_, @badmsg) {
$name =~ s/.*:://o;
confess "Non-existant field '$AUTOLOAD'" if !$valid{$name};
+ # this clever line of code creates a subroutine which takes over from autoload
+ # from OO Perl - Conway
+ *{$AUTOLOAD} = sub {@_ > 1 ? $_[0]->{$name} = $_[1] : $_[0]->{$name}} ;
@_ ? $self->{$name} = shift : $self->{$name} ;
}