[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

puts vs. write for writing to a file

Randy Kramer

10/16/2007 12:26:00 PM

I've done some googling, some looking in the pickaxe(2) book (using the
index), and some experimenting in irb, but I can't readily see the difference
between puts and write (except that write doesn't work in all cases in irb:)

irb(main):044:0> write "\nmorF\n\n"
NoMethodError: undefined method `write' for main:Object

So what is the difference (specifically for the case of writing to a file)
and/or when should I use one vs. the other?

Randy Kramer

4 Answers

Alex Young

10/16/2007 12:31:00 PM

0

Randy Kramer wrote:
> I've done some googling, some looking in the pickaxe(2) book (using the
> index), and some experimenting in irb, but I can't readily see the difference
> between puts and write (except that write doesn't work in all cases in irb:)
>
> irb(main):044:0> write "\nmorF\n\n"
> NoMethodError: undefined method `write' for main:Object
>
> So what is the difference (specifically for the case of writing to a file)
> and/or when should I use one vs. the other?
>
On a File object (actually, they're defined on IO), write just writes
the string given to the file unchanged. IO#puts adds a newline at the
end of the string if there isn't one already.

--
Alex

Randy Kramer

10/16/2007 2:47:00 PM

0

On Tuesday 16 October 2007 08:31 am, Alex Young wrote:
> On a File object (actually, they're defined on IO), write just writes
> the string given to the file unchanged. IO#puts adds a newline at the
> end of the string if there isn't one already.

Ahha, thank you very much!

(Now, knowing that, I can see it in the pickaxe-- I guess there were too many
other wording differences between the two for me to quickly spot the
significant (for me) difference. For example, puts (on page 512) is
described in terms of writing an object, while write (page 515) is described
in terms of writing a string.)

Randy Kramer

Robert Dober

10/16/2007 5:00:00 PM

0

On 10/16/07, Alex Young <alex@blackkettle.org> wrote:
> Randy Kramer wrote:
> > I've done some googling, some looking in the pickaxe(2) book (using the
> > index), and some experimenting in irb, but I can't readily see the difference
> > between puts and write (except that write doesn't work in all cases in irb:)
> >
> > irb(main):044:0> write "\nmorF\n\n"
> > NoMethodError: undefined method `write' for main:Object
> >
> > So what is the difference (specifically for the case of writing to a file)
> > and/or when should I use one vs. the other?
> >
> On a File object (actually, they're defined on IO), write just writes
> the string given to the file unchanged. IO#puts adds a newline at the
> end of the string if there isn't one already.
Furthermore puts formats array instances as follows

array_instance.join("\n").

Robert
--
what do I think about Ruby?
http://ruby-smalltalk.blo...

Chad Perrin

10/16/2007 5:50:00 PM

0

On Tue, Oct 16, 2007 at 09:31:27PM +0900, Alex Young wrote:
> Randy Kramer wrote:
> >I've done some googling, some looking in the pickaxe(2) book (using the
> >index), and some experimenting in irb, but I can't readily see the
> >difference between puts and write (except that write doesn't work in all
> >cases in irb:)
> >
> >irb(main):044:0> write "\nmorF\n\n"
> >NoMethodError: undefined method `write' for main:Object
> >
> >So what is the difference (specifically for the case of writing to a file)
> >and/or when should I use one vs. the other?
> >
> On a File object (actually, they're defined on IO), write just writes
> the string given to the file unchanged. IO#puts adds a newline at the
> end of the string if there isn't one already.

I guess the next question, then, is "What's the difference between print
and write for writing to a file?"

Trying to answer my own question with irb, I see that a successful write
has a return value equal to the number of characters it writes to the
file, while a successful print returns nil. Is that the only difference
in a file writing context?

--
CCD CopyWrite Chad Perrin [ http://ccd.ap... ]
Isaac Asimov: "Part of the inhumanity of the computer is that, once it is
completely programmed and working smoothly, it is completely honest."