sub tokenizer_header { # prende l'header contenuto in $self->{header} e ne estrae i # token fondamentali inserendoli in $self->{tokens} my $self = shift; my $header = $self->{header}; $header =~m|(.*?)|smi; $header = $1; my $p = HTML::TokeParser->new(\$header); $self->{tokens} = {}; while (my $token = $p->get_tag()) { my $tag = $token->[0]; my $type = substr($tag,0,1) eq '/' ? 'E' : 'S'; my $tag_text; if ($type eq 'S') { $tag_text = $token->[3]; my $text = $p->get_text(); my $struct = [$tag_text,$text,undef]; push @{$self->{tokens}->{$tag}},$struct; } elsif ($type eq 'E') { $tag = substr($tag,1,length($tag)-1); $tag_text = $token->[1]; my $last_idx = scalar @{$self->{tokens}->{$tag}}-1; $self->{tokens}->{$tag}->[$last_idx]->[2] = $tag_text; } } }