in reply to getting filehandles back after exec

I suspect you want the $^F variable. It sets the maximum "system" file descriptor. That is, the highest numbered file descriptor to "leave open" after a call to exec (or open for that matter), meaning the next process inherits open files using these descriptors/numbers.