#!/usr/bin/perl # https://perlmonks.org/?node_id=1216436 use strict; use warnings; print reverse split /^(?=Title)/m, do{ local $/; }; __DATA__ Title 1 Line of text A Line of text B Title 2 Line of text C Title 3 Title 4 Line of text D #### Title 4 Line of text D Title 3 Title 2 Line of text C Title 1 Line of text A Line of text B