in reply to Re: Can't open($newfh, $mode_layers, '&' . fileno($fh))
in thread Can't open($newfh, $mode_layers, '&' . fileno($fh))

OK, thnx for the pointers wrt '&' placement.

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:

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";
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...

And I'm still left in limbo wrt getting handle access modes on Win32...is there any Win32API solution to that ?