use strict; use warnings; use Data::Dumper; my $file = "start<<<>>>middle<<<>>>end"; my @parts = split /<<<<(.+?)>>>>/, $file; print Dumper \@parts;