binmode($fh, ':raw'); is the same thing as binmode($fh);, but they're not the same as using :raw with open.
Using binmode :raw disables layers that can be disabled. This doesn't disable buffering if the underlying layer does any.
Using open :raw prevents some layers from being added in the first place, and this has been shown to prevent buffering.
$ perl -le'open $fh, "<", "foo"; print for PerlIO::get_layers($fh)' unix perlio $ perl -le'open $fh, "<", "foo"; binmode $fh; print for PerlIO::get_la +yers($fh)' unix perlio $ perl -le'open $fh, "<", "foo"; binmode $fh, ":raw"; print for PerlIO +::get_layers($fh)' unix perlio $ perl -le'open $fh, "<:raw", "foo"; print for PerlIO::get_layers($fh) +' unix
In reply to Re^4: help in ruby code to perl
by ikegami
in thread help in ruby code to perl
by eviltom
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |