There has to be a way, to store the values for each customer into a variable $money_spent.
Do you want to store the value for each customer, or an aggregate? If the former, use a hash;
my %money_spent = (); foreach my $customer (keys %myHash) { $money_spent{$customer} = $myHash{$customer}->{"money"}; }
If the latter, simply sum the values:
my $money_spent = 0; foreach my $customer (keys %myHash) { $money_spent += $myHash{$customer}->{"money"}; }
You can also use map to do this in a more concise fashion. Per-customer hash:
my %money_spent = map { $_ => $myHash{$_}->{"money"} } keys %myHash;
Aggregate (using the sum function from List::Util):
use List::Util qw/sum/; # ... my $money_spent = sum map { $myHash{$_}->{"money"} } keys %myHash;
Or do you want to do something else entirely?
EDIT: note that the above snippets assume that %myHash looks something like this:
my %myHash = ( "Fred Flintstone" => { "money" => 1000, "wife" => "Wilma", }, "Barney Rubble" => { "money" => 2000, "wife" => "Betty", }, );
In reply to Re: Keys and Values from Hash
by AppleFritter
in thread Keys and Values from Hash
by David92
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |