Why use a regexp?
use strict;
my $str;
while (<DATA>) {
chomp;
my @cols = split(/;/);
for (my $i=1;$i<=@cols;$i++) {
$cols[$i-1]="<col$i>$cols[$i-1]</col$i>";
}
$str .= '<row>' . join('',@cols) . "</row>\n";
}
print $str;
exit;
__DATA__
a;b;c;d;e
f;g;h;i
j;k
l
m;n;o
prints:
<row><col1>a</col1><col2>b</col2><col3>c</col3><col4>d</col4><col5>e</
+col5></row>
<row><col1>f</col1><col2>g</col2><col3>h</col3><col4>i</col4></row>
<row><col1>j</col1><col2>k</col2></row>
<row><col1>l</col1></row>
<row><col1>m</col1><col2>n</col2><col3>o</col3></row>
UPDATE: Doh! of course gjb is right. Text::CSV is a great module. While my code is better than using regexps, Text::CSV is better than using my code.
-pete
"Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.