# Recursive deep copy

**URL:** <https://www.ruby-forum.com/t/recursive-deep-copy/103796>\
**Category:** Rails\
**Created:** [May 10, 2007, 12:37pm UTC](https://www.ruby-forum.com/t/recursive-deep-copy/103796 "2007-05-10T12:37:53Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [May 10, 2007, 12:37pm UTC](https://www.ruby-forum.com/t/recursive-deep-copy/103796/1 "2007-05-10T12:37:53Z")

</div>

hello,

It’s a little bit hard question:  
i’ve a problem when working on arrays. i’m doing a deep copy of an  
array (a find request result) by doing it :  
@array = new.Array(@original\_array)  
it just copies the first level, under levels arrays and hashes are not  
include in deep copy!

some can help?

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [May 10, 2007, 12:51pm UTC](https://www.ruby-forum.com/t/recursive-deep-copy/103796/2 "2007-05-10T12:51:22Z")

</div>

What about this :

new\_array = old\_array

😉

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [May 10, 2007, 1:00pm UTC](https://www.ruby-forum.com/t/recursive-deep-copy/103796/3 "2007-05-10T13:00:57Z")

</div>

Hi –

On Thu, 10 May 2007, Jean-Sébastien wrote:

> some can help?  
> The most common idiom for this is:

copy = Marshal.load(Marshal.dump(@array))

David

–  
Q. What is THE Ruby book for Rails developers?  
A. RUBY FOR RAILS by David A. Black ([Ruby for Rails](http://www.manning.com/black))  
(See what readers are saying! [http://www.rubypal.com/r4rrevs.pdf](http://www.rubypal.com/r4rrevs.pdf))  
Q. Where can I get Ruby/Rails on-site training, consulting, coaching?  
A. Ruby Power and Light, LLC ([http://www.rubypal.com](http://www.rubypal.com))

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [May 10, 2007, 1:01pm UTC](https://www.ruby-forum.com/t/recursive-deep-copy/103796/4 "2007-05-10T13:01:57Z")

</div>

Hi –

On Thu, 10 May 2007, Titou T. wrote:

> What about this :
> 
> new\_array = old\_array

He wants a deep copy, and that’s neither deep nor a copy. It’s just a  
new reference to the same array:

array = [1,2,3]  
new\_array = array  
new\_array.push(4)  
p array # [1, 2, 3, 4]

David

–  
Q. What is THE Ruby book for Rails developers?  
A. RUBY FOR RAILS by David A. Black ([Ruby for Rails](http://www.manning.com/black))  
(See what readers are saying! [http://www.rubypal.com/r4rrevs.pdf](http://www.rubypal.com/r4rrevs.pdf))  
Q. Where can I get Ruby/Rails on-site training, consulting, coaching?  
A. Ruby Power and Light, LLC ([http://www.rubypal.com](http://www.rubypal.com))

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [May 10, 2007, 1:24pm UTC](https://www.ruby-forum.com/t/recursive-deep-copy/103796/5 "2007-05-10T13:24:59Z")

</div>

thank you guys, “@array =  
Marshal::load(Marshal.dump(@original\_array))” works perfectly
