#!/usr/bin/perl

use strict;
use warnings;

use HTML::Parser ();

my $doc = <<'EOT';

<!-- This is not where <BODY> starts -->
<title>foo</title>

<script language="Perl" description="Print out <BODY>">
   open(BODY, "body.txt");
   while (<BODY>) {
     print;
   }
</script>

<!-- The next thing will be <BODY> the body -->

<Body>

Howdy!

</body>

EOT


my $body_offset;
HTML::Parser->new(
    start_h => [
        sub {
            return unless shift eq "body";
            $body_offset = shift;
            shift->eof;    # tell the parser to stop
        },
        "tagname,offset,self"
    ]
)->parse($doc);

die "No <body> found" unless defined $body_offset;

my $head = substr($doc, 0, $body_offset, "");
print $doc;
