Perl 5.22 now warns about redundant (i.e. extra) arguments to the
sprintf function. If your format string only has two place-holders but
you pass three place-fillers, you get warned:
Redundant argument in sprintf at ./postfix-logwatch line 1382...
The issue there was that the format string passed to sprintf was
constructed dynamically; sometimes it would contain two place-holders,
and sometimes three. Three place-fillers were always passed, so when
only two place-holders were used, the warning would be thrown. This was
fixed by testing whether or not there are two or three place-holders,
and passing the appropriate number of place-fillers.
$$divisor == $Totals{$keyname} ? 100.00 : $Totals{$keyname} * 100 / $$divisor;
}
else {
- push @{$lines[$cur_level]},
- sprintf "$fmt %-23s $extra\n", $total, $desc, commify ($Totals{$keyname});
+ my $new_line;
+ if ($extra eq '') {
+ $new_line = sprintf("$fmt %-23s \n", $total, $desc);
+ }
+ else {
+ $new_line = sprintf("$fmt %-23s $extra\n",
+ $total,
+ $desc,
+ commify ($Totals{$keyname}));
+ }
+ push @{$lines[$cur_level]}, $new_line
}
}
}