hi mwb613,
..Is it possible to use hash reference as a key in another hash reference?..
Ordinarily, maybe not! (But that is a 'white' lie) ;) Until you consider module like Tie::RefHash, which allows you use reference as hash key.
use strict;
use warnings;
use Data::Dumper;
use Tie::RefHash;
tie my %h, "Tie::RefHash";
my $key_hash_1 =
{ 'day' => 1, 'month' => 1, 'year' => 2000, 'hour' => 4, 'minute' =>
+ 44 };
my $key_hash_2 =
{ 'day' => 1, 'month' => 1, 'year' => 2000, 'hour' => 4, 'minute' =>
+ 45 };
%h = (
$key_hash_1 =>
{ 'burgers_sold' => 5, 'fries_sold' => 3, 'sodas_sold' => 11 },
$key_hash_2 => { 'burgers_sold' => 2, 'fries_sold' => 4, 'sodas_so
+ld' => 7 }
);
print Dumper( $key_hash_1, $key_hash_2 );
print Dumper( \%h );
for ( keys %h ) {
print join ' ' => %{$_}, ' => ', %{ $h{$_} }, $/;
}
Output:
$VAR1 = {
'hour' => 4,
'minute' => 44,
'month' => 1,
'day' => 1,
'year' => 2000
};
$VAR2 = {
'hour' => 4,
'minute' => 45,
'month' => 1,
'day' => 1,
'year' => 2000
};
$VAR1 = {
'HASH(0x8e963e0)' => {
'fries_sold' => 3,
'sodas_sold' => 11,
'burgers_sold' => 5
},
'HASH(0x8eb01d0)' => {
'fries_sold' => 4,
'sodas_sold' => 7,
'burgers_sold' => 2
}
};
hour 4 minute 44 month 1 day 1 year 2000 => fries_sold 3 sodas_sold
+11 burgers_sold 5
hour 4 minute 45 month 1 day 1 year 2000 => fries_sold 4 sodas_sold
+7 burgers_sold 2
Secondly, I think where you are using chains of while loops, a for loop would have been better.
If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author
unknown to me