diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 1999-05-06 21:44:38 +0000 |
---|---|---|
committer | Nick Ing-Simmons <nik@tiuk.ti.com> | 1999-05-06 21:44:38 +0000 |
commit | 3eb568f1c9e22faaefbd6531878f947fab30705b (patch) | |
tree | abc3121aecba55eeb60e8055e9b880e5b069878f /pp_sys.c | |
parent | 8bac7e006f7f6c2e6c054095234f5f206bed20e9 (diff) | |
download | perl-3eb568f1c9e22faaefbd6531878f947fab30705b.tar.gz |
open(FH,undef) # creates new_tmpfile opened read/write
Add t/io/open.t with test for above.
p4raw-id: //depot/perl@3315
Diffstat (limited to 'pp_sys.c')
-rw-r--r-- | pp_sys.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -506,6 +506,18 @@ PP(pp_open) DIE(PL_no_usym, "filehandle"); if (GvIOp(gv)) IoFLAGS(GvIOp(gv)) &= ~IOf_UNTAINT; + if (sv == &PL_sv_undef) { +#ifdef PerlIO + PerlIO *fp = PerlIO_tmpfile(); +#else + PerlIO *fp = tmpfile(); +#endif + if (fp != Nullfp && do_open(gv, "+>&", 3, FALSE, 0, 0, fp)) + PUSHi( (I32)PL_forkprocess ); + else + RETPUSHUNDEF; + RETURN; + } tmps = SvPV(sv, len); if (do_open(gv, tmps, len, FALSE, O_RDONLY, 0, Nullfp)) PUSHi( (I32)PL_forkprocess ); |