On Jan 1, 2007, at 7:20 PM, Rob Muhlestein wrote:
> Coming from Perl and C I have come to expect "\n" to be translated
> differently depending on OS--especially when doing sockets protocol
> programming. Ruby *appears* to be subject to this same OS/clib
> translation issue which is so often overlooked. Was hoping Ruby
> shielded the average user from this. Has anyone else had any
> experience
> confirming or denying this? I've written up the details in a blog
> post:
>
> http://rob.muhlestein.net/2007/01/wa...lines-ruby-no-
> different.html
In Ruby "\n" is a string of lentght 1 in all systems, and it is equal
to "\012" in all platforms. This works as in Perl and other languages
that inherit from C the way newlines are handled[*], except it is
simpler because it does not have the MacPerl exception.
In these languages you write portable sockets programming by
binmodeing the socket and hard-coding "\015\012" or whatever.
As a side note, by default modern Perl performs newlines transaltion
on CRLF platforms via the custom PerlIO I/O layer, the C Ruby
interpreter delegates this to stdio.
-- fxn
[*]
http://www.onlamp.com/pub/a/onlamp/2...understanding-
newlines.html