I had this problem too. I think that a Perl module update may have broken something - and I cannot figure out what.
Here is my fix (fwiw)
in AMAVIS.pm there is a loop activating AV modules.
This uses the following construct (about line 284)...
foreach my $av (@av) {
$av = 'AMAVIS::AV::'.$av;
writelog($args,LOG_CRIT, __PACKAGE__.": loading $av $VERSION");
eval "use $av $VERSION;1" or do {
writelog($args,LOG_CRIT, __PACKAGE__.": Couldn't load $av");
die __PACKAGE__.": Couldn't load $av";
};
[/i]
The line eval "use $av $VERSION;1" or do {
[/i] appears to be broken for CLAMD.pm.
This is how I patched AMAVIS
use AMAVIS::AV::CLAMD $VERSION;1;
foreach my $av (@av) {
$av = 'AMAVIS::AV::'.$av;
writelog($args,LOG_CRIT, __PACKAGE__.": loading $av $VERSION");
eval "use $av $VERSION;1" or do {
writelog($args,LOG_CRIT, __PACKAGE__.": Couldn't load $av");
die __PACKAGE__.": Couldn't load $av";
};
[/i]
A direct use of AMAVIS::AV::CLAMD fixed the problem for me.
Testing with AMAVIS::AV::CLAM worked fine, so it isn't eval and it isn't CLAMD.pm - it's a weird combination of both. YMMV.
Good Luck
Simon