in reply to File::Temp.. What am I missing?

On some systems (which should include FreeBSD), deleting the file while it's still open makes the file anonymous. It exists until the file no more file handles reference it.
for (1..50) { my $tmp = File::Temp->new( DIR => '/tmp' ); # Make the file anonymous unlink($tmp); sleep(1); }

The above is still vulnerable to Ctrl-C, but only for a tiny amount of time.

By the way, did you notice how much more readable the Perl-style for loop syntax is over the C-style one you used?