in reply to Parsing delimited file
If you want to code your own solution, here is my suggestion. It will, I think (but this is untested), produce the same output as the code in wilsond's reply, but introduces the map and grep built-ins and a little more use of regexes (see perlre, perlretut and perlrequick), all of which I think you will find rewarding.
(BTW: I, also, am afraid I do not clearly understand your requirements, but perhaps this example may yet be helpful.)
Output:use warnings; use strict; my $splitter = '|'; my $joiner1 = $splitter; my $joiner2 = ' '; while (my $record = <DATA>) { my ($head, @body) = grep ! m{ \A [\nSQ] \z }xms, split m{ \Q$splitter\E }xms, $record ; print join $joiner2, map join($joiner1, $head, $_), @body ; print "\n"; } __DATA__ AAAA|Q|dfadfsfaf|S|asfddsfasfdasdfaf|werwqr345435| BBBB|Q|ccccccccc|S|ddddddddddddddddd|eeeeee111111| FFFF|Q|ggggggggg|S|hhhhhhhhhhhhhhhhh|iiiiii222222|
AAAA|dfadfsfaf AAAA|asfddsfasfdasdfaf AAAA|werwqr345435 BBBB|ccccccccc BBBB|ddddddddddddddddd BBBB|eeeeee111111 FFFF|ggggggggg FFFF|hhhhhhhhhhhhhhhhh FFFF|iiiiii222222
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Parsing delimited file
by setebos (Beadle) on Jan 18, 2009 at 19:56 UTC | |
by AnomalousMonk (Archbishop) on Jan 18, 2009 at 20:12 UTC | |
by ravula1 (Initiate) on Jan 19, 2009 at 02:42 UTC |