Someone is calling _optimal_blksize("").
The fastest way I know to find this is to add -d to the Perl command line so the debugger runs then type "c" at the debugger prompt. This will cause you to get a stack backtrace when a warning happens, which is usually enough to track down the source of the bug.
I wish the debugger had an option to break on warnings. It would be easy to hack that option in by having dbwarn() check if the warnLevel option is greater than 1 and, if so, force $single= 1 when it is finished. I'll try to find time to send in a patch for that. (:
I suspect (and hope) that there is a module that provides stack backtraces for warnings via a simple
-Mmodule=option command-line switch to Perl, but I'm not aware of one.
(but my friends call me "Tye")