http://qs1969.pair.com?node_id=220614


in reply to still have a mysterious crash

I localized the last crash to this subroutine. d(34) printed 34 in the debug file, but the $m never appeared on the console, nor in the DEBUG log file (which is unbuffered), neither in the LOG file.

This means the program crashed inside localtime(), or doing a s/// regexp replace, or concatenating to a string ($m). The $_[0] parameter that was passed in was a string constant: 'local or whitelisted', and was called this way:

And you stopped localizing the error because ...?

print DEBUG "Line ", __LINE__, "\n"; before each line at the very least.

You can also

print DEBUG "\$fh = $fh\n"; print DEBUG "\$Con{\$fh} = $Con{$fh}\n"; print DEBUG "\$Con{\$fh}->{ip} = $Con{$fh}->{ip}\n"; print DEBUG "\$Con{\$fh}->{mailfrom} = $Con{$fh}->{mailfrom}\n";