Hashes of arrays in Perl are used when we want to access an array using an identifier rather than indices. It is an easier method to sort multiple arrays and classify them.
The following example will help you understand the general syntax for hashes of arrays. First, we populate a hash with arrays detailing seasons, days of a week, and weeks of a month. Then, to print each of the arrays and their elements, we use a for
loop to loop through the keys.
%HashesOfArrays = (seasons => ["summer", "autumn", "winter", "spring"],days => ["Monday", "Tuesday", "Wednesday","Thursday", "Friday","Saturday","Sunday"],week => [1,2,3,4],);for $types ( keys %HashesOfArrays ){ print "$types: @{ %HashesOfArrays{$types} }\n"; }
You can use push
to add elements to a key of the hash. As shown below, we first print the initial hashes of arrays and then push new elements to the keys seasons
and days
.
%HashesOfArrays = (seasons => ["summer", "autumn"],days => ["Monday", "Tuesday", "Wednesday","Thursday", "Friday"],week => [1,2,3,4],);print "before pushing new elements \n";for $types ( keys %HashesOfArrays ){ print "$types: @{ %HashesOfArrays{$types} }\n"; }push @{ $HashesOfArrays{seasons} }, "winter", "spring";push @{ $HashesOfArrays{days} }, "Saturday","Sunday";print "\nafter pushing new elements \n";for $types ( keys %HashesOfArrays ){ print "$types: @{ %HashesOfArrays{$types} }\n"; }
Free Resources