Thread HTML::Parser - Handler Issue [Anfänger] (2 answers)
Opened by Tiefkuehlpizza at 2013-05-22 15:03

Tiefkuehlpizza
 2013-05-22 15:03
#167733 #167733
User since
2013-05-22
1 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich bin Perl Anfänger. Ich habe eine Datei in einen String eingelesen (OK - Per Ausgabe validiert) und definiere nun per

Code: (dl )
1
2
3
my $parser_cc = HTML::Parser->new();
$parser_cc->handler(start => \&start_handler,"tagname,self");
$parser_cc->parse($cc_string);


das Parsing. Der Handler macht Folgendes:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my $self = shift;
my $text;
if (shift eq "cc-name") {
$self->handler(text => sub{$text = shift;},"dtext");
$self->handler(end => sub{print $text,"\n\n" if(shift eq 'cc-name')},"tagname");
}
elsif (shift eq "cc_info") {
$self->handler(text => sub{$text = shift;},"dtext");
$self->handler(end => sub{print $text,"\n\n" if(shift eq 'cc_info')},"tagname");
}
else {
print "Fehler".$self;
}


Die Ausgabe ist "Fehlercc-nameFehlercc-info". Dies bedeutet shift hat den erwarteten Inhalt aber "eq" feedbackt FALSE...

Interpreter Feedback ist "Uninitialized value within @_ in string eq [...] line [... => elsif von cc-info]". Heißt auch das IF ist TRUE aber das elif nicht...

Danke für die Einsteigerhilfe...

Im Endeffekt möchte ich den Inhalt verschiedener Tags in ein Array schreiben. Wenn ein besserer Ansatz existiert, immer her damit.

Danke und Gruß
Pizza
Last edited: 2013-05-22 15:06:50 +0200 (CEST)

View full thread HTML::Parser - Handler Issue [Anfänger]