in reply to joining lines

Alternative way:
my $line; while (defined($line=<FH>)){ chomp $line; unless (3 <= $line =~ tr,\|,\|,) { $line .= <FH>; redo unless eof(FH) } print "$line\n"; }

$|=$_='1g2i1u1l2i4e2n0k',map{print"\7",chop;select$,,$,,$,,$_/7}m{..}g