in reply to Using ":raw" layer in open() vs. calling binmode()
Three data points (Linux, OS X, and Win32) that do little to clarify the confusion.
Summary:
5.8.5 linux < => unix perlio 5.8.5 linux < binmode => unix perlio 5.8.5 linux <:raw => unix 5.8.5 linux <:raw:perlio => unix perlio 5.8.6 darwin < => stdio 5.8.6 darwin < binmode => stdio 5.8.6 darwin <:raw => unix 5.8.6 darwin <:raw:perlio => unix perlio 5.8.6 win32 < => unix crlf 5.8.6 win32 < binmode => unix crlf 5.8.6 win32 <:raw => unix 5.8.6 win32 <:raw:perlio => unix perlio
Detail:
$ perl -v This is perl, v5.8.5 built for i386-linux-thread-multi --snip-- $ perl -MPerlIO -le 'open IN, "<" ,"a.txt"; pri +nt for PerlIO::get_layers(IN)' unix perlio $ perl -MPerlIO -le 'open IN, "<" ,"a.txt"; binmode IN; pri +nt for PerlIO::get_layers(IN)' unix perlio $ perl -MPerlIO -le 'open IN, "<:raw" ,"a.txt"; pri +nt for PerlIO::get_layers(IN)' unix $ perl -MPerlIO -le 'open IN, "<:raw:perlio" ,"a.txt"; pri +nt for PerlIO::get_layers(IN)' unix perlio
$ perl -v This is perl, v5.8.6 built for darwin-thread-multi-2level --snip-- $ perl -MPerlIO -le 'open IN, "<" ,"a.txt"; pri +nt for PerlIO::get_layers(IN)' stdio $ perl -MPerlIO -le 'open IN, "<" ,"a.txt"; binmode IN; pri +nt for PerlIO::get_layers(IN)' stdio $ perl -MPerlIO -le 'open IN, "<:raw" ,"a.txt"; pri +nt for PerlIO::get_layers(IN)' unix $ perl -MPerlIO -le 'open IN, "<:raw:perlio" ,"a.txt"; pri +nt for PerlIO::get_layers(IN)' unix perlio
|
|---|