in reply to Comparing ARRAY Ref values

If the addresses of the two references are different, it means it points to two different memory space. Comparing the references in scalar context you will only compare the address, if you want to compare the content, here is a suggestion:

use Test::Deep::NoTest qw( eq_deeply ); if ( eq_deeply($ref1, $ref2) ) { print "Identical!\n"; } else { print "Different!\n"; }

It works for complex structures as well (deep hashrefs including mixes of hashrefs and arrayrefs).

In your case, if the two references must point to the same structure, then you have a bug in your code that creates two references to two separate memory space. Now why do they have the same content, that depends on your code.

A for will get you from A to Z; a while will get you everywhere.