You have an array reference. Each element of the array is a hash reference.
So, when you loop, you are doing:
for my $hashRef ( @$my_array_ref ) # Curlies aren't needed here since
+$my_array_ref is a simple variable name
{
...
}
For each hash ref, you can inspect the contents via: $hashRef->{name} or $hashRef->{type} etc...
It looks like you want to spin through all the data and build a new Hash of Hashes (HoH):
$results->{$transactionType}{$purchasedThing} += $amountSpent
or some such like that.
When looping through the hashes to display, you probably want to sort the keys so that you print in the same order each time.
for my $transactionType (sort keys %$results)
{
for my $purchasedThings (sort keys %{ $results->{$transactionType} }
+) # Curlies here to mark out what to dereference
{
printf("spent \$%5d on %20s using %20s\n",
$results->{$transactionType}{$purchasedThings},
$purchasedThings,
$transactionType,
);
}
}
-
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.