my @filenames; my @titles; my @headings; my @stuff; foreach (@pages) { chomp; if (/^\*{4}filename.ext\*{4}/) { s/^\*{4}filename.ext\*{4}//; push @filenames, $_; } elsif (m/^\*{4}title\*{4}/) { s/^\*{4}title\*{4}//; push @titles, $_; } elsif (m/^\*{4}heading\*{4}/) { s/^\*{4}heading\*{4}//; push @headings, $_; } else { s/\*{4}stuff\*{4}(.*?)\*{4}endstuff\*{4}/sg; push @xstuff, $_; } }