behavior looks consistent when autoflush is activated.
Otherwise please use a similar code-template for a SSCCE.
use v5.12; use warnings; use Data::Dump qw/pp dd/; sub tst { my $vers = shift; open STDOUT, ">-"; # restore STDOUT $|=1; say STDERR "********* testing $vers\n"; my $fh; open $fh, ">-" if $vers eq "open2"; $fh = \*STDOUT if $vers eq "copyref"; open $fh, '>&', STDOUT if $vers eq "redirect"; $fh->autoflush; say "$vers 1"; close STDOUT; say $fh "$vers 2"; say "$vers 3"; } tst("redirect"); tst("open2"); tst("copyref");
-*- mode: compilation; default-directory: "d:/tmp/pm/" -*- Compilation started at Mon Mar 1 23:21:00 C:/Strawberry/perl/bin\perl.exe -w d:/tmp/pm/redirect_STDOUT.pl ********* testing redirect redirect 1 redirect 2 say() on closed filehandle STDOUT at d:/tmp/pm/redirect_STDOUT.pl line + 32. ********* testing open2 open2 1 open2 2 say() on closed filehandle STDOUT at d:/tmp/pm/redirect_STDOUT.pl line + 32. ********* testing copyref copyref 1 say() on closed filehandle STDOUT at d:/tmp/pm/redirect_STDOUT.pl line + 30. say() on closed filehandle STDOUT at d:/tmp/pm/redirect_STDOUT.pl line + 32. Compilation finished at Mon Mar 1 23:21:00
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
In reply to Re: Three argument version of open '>-'
by LanX
in thread Three argument version of open '>-' (updated)
by choroba
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |