47 lines
729 B
Perl
Executable File
47 lines
729 B
Perl
Executable File
#!/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;
|