http://qs321.pair.com?node_id=11106870


in reply to Re^4: Cutting text from the end of the file and adding it to the top
in thread Cutting text from the end of the file and adding it to the top

$ 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
I trimmed the trailing "," in your headings line as that breaks the CSV standard, but your format seems variable so...
print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."