cacheout $path; print $path @data;
cacheout
function will make sure that there's a filehandle open for writing
available as the pathname you give it. It automatically closes and re-opens
files if you exceed your system file descriptor maximum.
NOFILE
define on some systems, so you may have to set $cacheout::maxopen yourself.