#!/usr/bin/env perl use strict; use warnings; my $in_plus_lines = 0; while () { chomp; if (/^\+(.*)$/) { print "\n" unless $in_plus_lines; $in_plus_lines = 1; print $1; } else { $in_plus_lines = 0; print "\n" if $. > 1; print "$_"; } } print "\n"; __DATA__ * asterisk_line_1 * .dot_line + plus_line_1 + plus_line_2 * asterisk_line_3 + plus_line_3 + plus_line_4 * asterisk_line_4 + plus_line_5 + plus_line_6 plain_text_line_1 + plus_line_7 plain_text_line_2 + plus_line_8 * *asterisk_line_6 *asterisk_line_7 plain_text_line_3