I have a hash structure(s) that I would like to store within the array, for example like a new record within a table. Here is my code:
####
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
# The objective of the application is to demonstrate
# how to use
# Build an array of hashes.
my @data2 = (
{ "DR"=>[0,0,0,0,0],
"SAT ITAMS"=>[0,0,0,0,0],
"PROD ITAMS"=>[0,0,0,0,0]
}
); # End of the array.
my @data=({});
my $work_request = {
"DR"=>[0,0,0,0,0],
"SAT ITAMS"=>[0,0,0,0,0],
"PROD ITAMS"=>[0,0,0,0,0]
};
for ( my $indx = 0; $indx <=2; $indx++){
# Make a reference to the hash reference
my $work_package = \%{$work_request};
# The hash should be constructed dynamically?
foreach my $key (keys %{$work_package}){
my @list = @{$work_package->{$key}};
for (my $a_id=0; $a_id <= $#list; $a_id++) {
$list[$a_id]=$indx;
print " $list[$a_id]\t";
}
print "\n";
}
print"\n";
# Add the hash reference to the array
#push (@data, %{$work_package})
push (@data, \%{$work_package});
}
# Printing out the array of hashes list.
# Now is print out the array of hashes.
for ( my $indx = 0; $indx <=2; $indx++){
# Make a reference to the hash reference
my $work_package = pop(@data);
# The hash should be constructed dynamically?
foreach my $key (keys %{$work_package}){
#print "$key\t";
my @list = @{$work_package->{$key}};
for (my $a_id=0; $a_id <= $#list; $a_id++) {
print " $list[$a_id]\t";
}
print "\n";
}
print"\n";
}
The output I get is the following:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
####
I haven't be able to preserve the values. Can someone help
me?