in reply to Re^2: Updating 1 array affects the other array
in thread Updating 1 array affects the other array

As other people have mentioned, what you're copying are references (as indicated by the de-referencing arrows that you're using in the greps). Namely, your array @temp_open_single is, presumably, an array of arrayrefs.

Let's say that the first arrayref is pointing to the array at 0x18045c0, and that that array passes the test in the grep for @unique_terminal_id. Then @unique_terminal_id also contains a reference to the array at 0x18045c0. Let's suppose further that that array also passes the test in the grep for @unique_manufacturer_model. Then @unique_manufacturer_model also contains a reference to the—exact same!—array at 0x18045c0. It is copying the reference, not the referent.

That means that, when you refer to $unique_terminal_id[0][0] or to $unique_manufacturer_model[0][0], in either case you're just looking at the entry at index 0 of the single array at 0x18045c0. After you change that single array in one place, the changes will still be visible even if you look at it from another location. As others have mentioned, you need something like Storable's dclone function (which makes a 'deep clone') will allow you to avoid this difficulty.