in reply to Creating a copy of an array

How do I print out or copy a recursive data structure?, from perlfaq4, answers this question. However, the docs on this site are a little out of date; this particular FAQ has been updated in newer versions. Use `perldoc -q copy` to look up the answer locally, if you have a more recent version of perl than 5.005_02, or check the docs at http://www.perl.com.

As to why you had this problem... @second = @first only does a shallow copy. The references in @first are copied to @second, so that @{$second[0]} is the exact same array as @{$first[0]}.