http://qs321.pair.com?node_id=57578


in reply to Re: scratching the surface of File::Temp
in thread (code) scratching the surface of File::Temp

Like you point out, a, if $fh is used instead of TMP, I lose $filehandle as soon as $fh is closed.   So how can I unlink0 with no $filehandle without generating "Use of uninitialized value @ /usr/local/lib/site_perl/File?Temp.pm line (1525|1584), <STDIN> chunk 1" ?
#!/usr/bin/perl -w use strict; use File::Temp qw(tempfile unlink0 ); use vars qw($fh $filename); my $template = 'fileXXXXXXXXXX'; my $dir = '/tmp/'; ($fh, $filename) = tempfile($template, DIR => $dir) or die "Error creating $filename: $!"; print $fh "\nS'working?\n" or die "Error writing to $filename: $!"; close $fh or die "Error closing $filename: $!"; print "\nUnlinking $filename\n<ENTER> to continue, CTRL+C to abort.\n" +; my $continue = (<STDIN>); unlink0 ($fh, $filename) or die "Error unlinking file $filename safely: $!"
I wouldn't be surprised if it's explained in the module's pod and I'm just not picking up on it.
    cheers,
    Don
    striving for Perl Adept
    (it's pronounced "why-bick")

Update: Good monk a says below "not supposed to close $fh... unlink0 will handle..."
A-ha!   that seems to do the trick. 8^)

Update #2: But if I don't "close $fh" then "print $fh "\nS'working?\n" or die;" doesn't really happen.   So I'm still doing something wrong 8^(