in reply to Storing metadata with file handles

the IO::File object is merely a reference, so you could use the Tie::RefHash module as replacement for the "ordinary" hash. that should mild down your headache some bits ;)