If you are getting ARRAY 0x... whatever that means that you are trying to print the reference itself, and not what that reference is pointing to. Without your exact data structure, I can't give you the exact syntax but to dereference your array ref as an array, put an @ on the front.
Example:
my @array = (1, 2, 3);
my $arrayref = \@array;
print $arrayref, "\n"; # prints "ARRAY(0x...)"
print @$arrayref, "\n"; # prints "123"
to access a specific element in the array you can do: $arrayref->[0]
my @sameExactArrayAsBefore = @$arrayref; # putting the @ sign in front of $arrayref says that I want to dereference the reference $arrayref as an array
I'm not sure what your programming experience is, but a reference is basically a pointer. The arrow (->) operator is the dereferencing operator which is used to "follow" the pointer to the thing it's pointing to. If you try to print the reference itself, you get that funny ARRAY(0x...) or HASH(0x...) or SCALAR(0x...) depending on what that reference is pointing to.
The Perl documentation is very good. Type 'perldoc perlref' or 'perldoc perlreftut' at the command line for some good walkthroughs on references. 'perldoc perldata' will give you everything you need to know about data structures. And for completeness, 'perldoc perl' will give you a list of all the built in perldocs.
If you have any specific questions, you will have to give us specfics. Preferrably post code you are having trouble understanding or give us the exact makeup of your data structure you are having trouble accessing.