This sooo looks like homework. Oh, well.
You'll probably be interested in the s modifier for regex matching. (See perlre for more detail.):
#!/usr/bin/perl
use strict;
use warnings;
my $poem;
{
local $/ = undef;
$poem = <DATA>;
}
my( $before, $after) = $poem =~ m/(.*)\bDOG\b(.*)/s;
print "Text before:\n$before\n\n";
print "Text after:\n$after\n\n";
__DATA__
A Beautiful Poem
Mary had a little lamb, little lamb, little lamb
Mary had a DOG but everywhere that mary went the lamb was
sure to go even though it did not like the dog very much.
# Output
Text before:
A Beautiful Poem
Mary had a little lamb, little lamb, little lamb
Mary had a
Text after:
but everywhere that mary went the lamb was
sure to go even though it did not like the dog very much.