develooper Front page | perl.perl5.porters | Postings from October 2016

Temporary files with open my $fh, ">", undef;

Thread Next
Andy Lester
October 26, 2016 14:26
Temporary files with open my $fh, ">", undef;
Message ID:
In this thread on /r/perl <>, it’s noted that

    Another trick which I recently discovered (after looking at a benchmark script written by MJGARDNER) is that you can use undef as the filename in the 3-argument open:

     open my $fh, ">", undef;

    this creates an anonymous temporary file. This alleviates the need to use File::Temp.

Looking at perlfunc -o open, we find

            As a special case the three-argument form with a read/write mode
            and the third argument being "undef":

                open(my $tmp, "+>", undef) or die ...

            opens a filehandle to an anonymous temporary file. Also using "+<"
            works for symmetry, but you really should consider writing
            something to the temporary file first. You will need to "seek" to
            do the reading.

I read this to mean the mode must be “+>” or “+<“ for the anonymous temporary file.  Should the docs also mention that “>” works as well?  Or should “>” not work, and the fact that it DOES work is a bug?

Andy Lester =>

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About