Hi Monks!
I am stuck on this one where I am loosing one level in the array once I process the DATA
inside of the "for loop". I hope this sample code shows better what I am trying to do and
that someone can help me solve this one.
Code Sample:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
...
foreach my $num ( keys %{$data} ) {
my $main = $data->{$num}{main};
unshift @$main,["Account", "Name", "Date", "Code #"];
warn Dumper $main;
=code
The data structure looks like this:
$VAR1 = [
[
'Account',
'Name',
'Date',
'Code #'
],
[
'12345',
'MONICA',
'01/01/1900',
'0X10'
],
[
'000001',
'MARY L',
'01/01/2000',
'0111P'
],
[
'8884',
'JOHN M.',
'01/01/1932',
'0OK8'
],
];
=cut
my $type = $data->{$num}{type};
unshift @$type,["HOUSE", "YEAR", "COLOR",];
warn Dumper $type;
=code
The data structure looks like this:
$VAR1 = [
[
'HOUSE',
'YEAR',
'COLOR',
],
[
'Main',
'1900',
'Red',
],
[
'APT',
'1290',
'Blue',
],
[
'AVAL',
'1921',
'Green',
],
];
=cut
my $princ = $data->{$num}{princ};
unshift @$princ,["AC #","Name", "DATE", "Ref","Case #1","Case #2", "C
+ase #3", "Case #4",];
warn Dumper $princ;
=code
The data structure looks like this:
$VAR1 = [
[
'AC #',
'Name',
'DATE',
'Ref',
'Case #1',
'Case #2',
'Case #3',
'Case #4'
],
[
'Q3.0',
'OK',
'1900-01-01',
'N',
'O',
'O',
'X',
'Y'
],
[
'12w',
'PL',
'2000-01-02',
'N',
'P',
'O',
'X',
'A'
],
];
=cut
for my $i ( 0 .. $#{ $main } ){
# more stuff
my ($a, $b, $c) = add_more(
data => $main->[$i],
);
my ($d, $e, $f) = add_more(
data => $type->[$i],
);
my ($g, $h, $j) = add_more(
data => $princ->[$i],
);
}
}
sub add_more{
my (%args) = @_;
my $data = $args{data} || '';
warn Dumper $data;
=code
# I see that one level is lost here, just cant figure it out how to fi
+x it
$VAR1 = [
'Account',
'Name',
'Date',
'Code #'
];
Can't use string ("Account") as an ARRAY ref while "strict refs" in us
+e ...
=cut
...
column_props => [ map{ {
justify => 'center',
} }1..@{$data->[0]}],
...
}
Thanks for looking!