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!

In reply to Can't use string as an ARRAY ref by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.