note
Utilitarian
<code>
$ cat tmp/tmp.pl && perl tmp/tmp.pl
#!/usr/bin/perl
#
use strict;
use warnings;
my $heading=readline(DATA);
my @headings=split/,/,$heading;
print $heading;
my (@index,@values);
while(<DATA>){
chomp;
if (/^(\w+),\s*$/){
push @index,$1;
}
else{
@values=split/,/,$_;
}
}
my $row = 0;
for my $record (@index){
print join(",\t", $record, @values[(scalar(@headings) * $row) .. ((scalar(@headings) * $row) + $#headings -1)]),"\n";
$row++;
}
__DATA__
a, b, c, d
aa,
bb,
aa,
bb,
12,33,102,111,223,24,88,56,99,130,21,45,88,90,212,500
a, b, c, d
aa, 12, 33, 102
bb, 223, 24, 88
aa, 99, 130, 21
bb, 88, 90, 212
</code>
I trimmed the trailing "," in your headings line as that breaks the CSV standard, but your format seems variable so...
<!-- Node text goes above. Div tags should contain sig only -->
<div class="pmsig"><div class="pmsig-681898">
<c>print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."</c>
</div></div>
11106860
11106868