# Curious why copying an array element by element fails when using strip!

**URL:** <https://www.ruby-forum.com/t/curious-why-copying-an-array-element-by-element-fails-when-using-strip/171776>\
**Category:** Rails\
**Created:** [July 9, 2009, 2:12am UTC](https://www.ruby-forum.com/t/curious-why-copying-an-array-element-by-element-fails-when-using-strip/171776 "2009-07-09T02:12:34Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [July 9, 2009, 2:12am UTC](https://www.ruby-forum.com/t/curious-why-copying-an-array-element-by-element-fails-when-using-strip/171776/1 "2009-07-09T02:12:34Z")

</div>

Hi,

I wanted to copy one array into another, element by element, so that I  
could edit the source data as necessary. I simultaneously changed a  
source element using “strip!”. The latter step corrupted the  
copying. Without the bang operator, all works as expected.

The above question, source code and output are stored at  
[http://www.pastie.org/539430](http://www.pastie.org/539430).

This is not an earth-shattering problem. I’m just curious why it  
doesn’t work … especially because it took me a good while to figure  
out the cause of my app’s failure.

Thanks in Advance,  
Richard

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [July 9, 2009, 2:23am UTC](https://www.ruby-forum.com/t/curious-why-copying-an-array-element-by-element-fails-when-using-strip/171776/2 "2009-07-09T02:23:05Z")

</div>

Hi,

Did you read the documentation on strip and strip!?  
([class String - RDoc Documentation](http://ruby-doc.org/core/classes/String.html#M000820))

strip! modifies the existing string (returning itself if a modification  
occurred and nil if nothing was done), while strip does the modification  
and returns a new string.

Simon

On Thu, 09 Jul 2009 08:11:30 +0800, RichardOnRails

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [July 9, 2009, 2:42am UTC](https://www.ruby-forum.com/t/curious-why-copying-an-array-element-by-element-fails-when-using-strip/171776/3 "2009-07-09T02:42:22Z")

</div>

Hi Simon & Jamey,

I forgot the first commandment of programming: RTFM. Sorry, guys.  
Thanks for you excellent responses.

Best wishes,  
Richard

On Jul 8, 8:11 pm, RichardOnRails

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [July 9, 2009, 2:24am UTC](https://www.ruby-forum.com/t/curious-why-copying-an-array-element-by-element-fails-when-using-strip/171776/4 "2009-07-09T02:24:50Z")

</div>

The strip! method isn’t corrupting the copy. It’s that the strip!  
method returns nil if nothing was stripped from the string. That’s  
why you are getting nil for the second array element in the copy.

Jamey

On Wed, Jul 8, 2009 at 8:11 PM,
