However, testing binmode() seems to do some odd things; if I apply the layers of the original to the dup'ed handle, the layers stack, rather than replace:
results in "unix,crlf,unix" as the reported layers for $fd3. I guess its possible scan and apply layers - but how do I remove them ? I tried using just "binmode $fd3;", and that still reports unix,crlf...use PerlIO; my $fd; open($fd, '+>>:raw', 'somefile.data') || die $!; my $layers = ':' . join(':', PerlIO::get_layers($fd)); print "$layers\n"; # # this doesn't complain, but the layers aren't being properly applied # my $fd3; open($fd3, "+>>&", fileno($fd)) || die $!; binmode $fd3, $layers; print join(',', PerlIO::get_layers($fd3)), "\n";
And I'm still left in limbo wrt getting handle access modes on Win32...is there any Win32API solution to that ?
In reply to Re^2: Can't open($newfh, $mode_layers, '&' . fileno($fh))
by renodino
in thread Can't open($newfh, $mode_layers, '&' . fileno($fh))
by renodino
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |