To my mind, you just need to memorize that arrays and hashes can contain only scalars and references, and in order to use contents of an object by its reference you need ->.
For example,
#!/usr/bin/perl
use feature "say";
# This is an array of array references:
my @array = ( # "(...)" means array
[ 1, 2, 3 ], # "[...]" means array reference
[ 4, 5, 6 ],
);
say $array[1]->[2]; # 6
# firstly, we get the second element from the array
# secondly, it's a reference to an array, so we add "->" and get the t
+hird element of it
# this is a reference to an array of references of arrays
my $reference = [
[ 7, 8, 9 ],
[ 10, 11, 12 ],
];
say $reference->[0]->[1]; # 8
# this is an array of hash references
my @hashes = (
{ one => 1, two => 2, three => 3 }, # "{...}" means hash reference
{ one => 11, two => 22, three => 33 },
);
say $hashes[1]->{one}; # 11
You may also want to use
Data::Dumper to look inside your data structures. Perl debugger (
perl -d) command "
x" is also useful.
Sorry if my advice was wrong.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.