#!/usr/bin/perl use strict; use warnings; my $chunk1; my $chunk2; my $chunk3; { local $/ = undef; (undef,$chunk1,$chunk2,$chunk3) = split(/^!(?:sectionname1|sectionname2|sectionname3)$/m, ); } print $chunk2; __DATA__ !sectionname1 this is the data !sectionname2 this is more data !sectionname3 end