This is how I'd split the arguments up. Comments in the code should provide enough explanation.
my $ArgV = "a1:b1:c1:d1;:a2:b2:c2;:a3;:a4;:a5:b5;:a6:b6:c6;:a7:b7"; my @Array; my ( $ThisRow, $ThisCol ); # Split data into rows on the ';' character. $ThisRow = 0; foreach my $Row ( split ( ';', $ArgV ) ) { # Split the columns on the ':' character. $ThisCol = 0; foreach my $Element ( split ( ':', $Row ) ) { # Skip blank elements; then insert data into the appropriate # Row, Column element then move on to the next column. next if ( $Element eq "" ); $Array[ $ThisRow ][ $ThisCol++ ] = $Element; } # Move on to the next row. $ThisRow++; } # Now print out the array to show that we've got # the right stuff in the right spot. for ( my $RowNow = 0; defined ( $Array[ $RowNow ] ); $RowNow++ ) { for ( my $ColNow = 0; defined ( $Array[ $RowNow ][ $ColNow ] ); $Col +Now++ ) { print "[ $RowNow ][ $ColNow ]: $Array[ $RowNow ][ $ColNow ]. "; } print "\n"; }

"Excellent. Release the hounds." -- Monty Burns.


In reply to Re: Split into 2-D Array by talexb
in thread Split into 2-D Array 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.