X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXMsg.pm;h=2de6a22ad7cdf220b567212e24800071fa88ca51;hb=b736286d16b3c0e310df106f727ca2143a000e08;hp=55834fc3a6edf0a408c6091df4fe7e0caffcef0e;hpb=15a742ea0f1983282fdff272a362555afbdb99ad;p=spider.git diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index 55834fc3..2de6a22a 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -458,7 +458,7 @@ sub del_msg my $self = shift; # remove it from the active message list - @msg = map { $_ != $self ? $_ : () } @msg; + @msg = grep { $ref($_) && $_ != $self } @msg; # belt and braces (one day I will ask someone if this is REALLY necessary) delete $self->{gotit}; @@ -476,7 +476,7 @@ sub clean_old # mark old messages for deletion foreach $ref (@msg) { - if (!$ref->{keep} && $ref->{t} < $main::systime - $maxage) { + if (ref($ref) && !$ref->{keep} && $ref->{t} < $main::systime - $maxage) { $ref->{deleteme} = 1; delete $ref->{gotit}; delete $ref->{list}; @@ -486,7 +486,7 @@ sub clean_old } # remove them all from the active message list - @msg = map { $_->{deleteme} ? () : $_ } @msg; + @msg = grep { ref($_) && !$_->{deleteme} } @msg; $last_clean = $main::systime; }