#!/usr/bin/perl use strict; use warnings; use diagnostics; my $start = ''; my $end = ''; my $data = do { local $/; ; }; while ($data =~ /\Q$start\E(.+?)\Q$end\E/sg) { print "$1\n"; } __DATA__ TEXT1 TEXT2 TEXT3