in reply to ignoring warnings in eval
This code adds a warning handler after doing everything else. What happens if you move the warning handler declaration to the start of this function?
sub _logroll { local $SIG{__WARN__} = sub {}; ... } [download]