1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use HTML::Parser;
my(%data) = (title => '', meta => [],
style => [], script => []);
my($CURRENT);
my $p = new HTML::Parser (
start_h => [sub {
my($tagname, $attr) = @_;
$CURRENT = $tagname;
push(@{$data{meta}}, $attr) if ($tagname eq 'meta');
}, 'tagname, attr'],
text_h => [sub {
my($text) = @_;
if ($CURRENT eq 'title') {
$data{title} = $text;
}
elsif ($CURRENT eq 'style') {
push(@{$data{style}}, $text);
}
elsif ($CURRENT eq 'script') {
push(@{$data{script}}, $text);
}
}, 'dtext'],
end_h => [sub { $CURRENT = '' }]);
$p->parse_file(*DATA);
Ist jetzt keine saubere Loesung, wird aber - denke ich mal - meinen Loesungsansatz verdeutlichen.
Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche