use strict; use warnings; use 5.020; use utf8; my $maxlen = 300; # $data wird aus einer Datei gefüllt, ich habe den Code entfernt # kürzen $data = shorten($data); sub shorten { my $source = shift; # Puffer für geänderte Elemente my @replaced_data = (); # HTML-Parser erzeugen my $p = HTML::Parser->new(); $p->empty_element_tags(1); $p->xml_pic(1); # damit auch z.B. geparst wird $p->utf8_mode(1); # Handlerroutine für bestimmte Startelemente registrieren $p->handler( start => sub { return "" } ); # Handlerroutine für bestimmte Endelemente registrieren $p->handler( end => sub { return "" } ); # Handlerroutine für Textinhalt + Deskodierung registrieren $p->handler( text => sub { my $s = shift; push @replaced_data, $s; }, "dtext" ); # Handlerroutine für Kommentare registrieren $p->handler( comment => sub { return "" }, "text" ); # Handlerroutine für PHP und anderes mit $p->handler( process => sub { return "" }, "text" ); # HTML nun parsen und ändern $p->parse($source); # stop parsing $p->eof(); my $data = join "", @replaced_data; return substr( $data, 0, $maxlen ) . '…'; } ## end sub shorten print "Content-Type: text/html; charset: utf-8\n\n"; print "

$data

";