html :: tagparser не работает - PullRequest
1 голос
/ 06 мая 2011


my $url  = "\'http://".$server.":4080/cgi-bin/gen_graph.pl?view=5&SUBSYS=\'";
my $html = HTML::TagParser->new( $url );
my @list = $html->getElementsByTagName( "pre" );
print $list[0];
foreach my $elem ( @list ) {
        if($elem->innerText =~ /APIs/){
                my $text = $elem->innerText;
                if ( $text eq "" ) {
                } else {
                        @API_list = split(/\s+/, $text);
                        print $API_list[1];
                }
        }
}
return \@API_list;
}


здесь строка

my @list = $html->getElementsByTagName( "pre" );
не работает.если я делаю это как отдельный скрипт, он работает хорошо ... но если я включаю его в другой скрипт, в @list нет значения.кто-нибудь может мне помочь?

1 Ответ

3 голосов
/ 06 мая 2011

Вы получаете сообщение об ошибке?Если так, то, что это?

Вы думали проверить возвращаемое значение HTML::TagParser->new()?Если происходит сбой, возможно, он делает это тихо, и вы узнаете об этом позже, только когда попытаетесь использовать свой объект $html.

Я думаю, что URL, который вы ему передаете, выглядит странным.*

"\'http://".$server.":4080/cgi-bin/gen_graph.pl?view=5&SUBSYS=\'"

Почему два слоя цитат?(двойные кавычки, а затем экранированные одинарные кавычки).Разве это не сработает:

my $url =      'http://' 
          .    $server 
          .    ':4080/cgi-bin-gen_graph.pl?view=5&SUBSYS=';

(добавлен дополнительный пробел для облегчения чтения оператора конкатенации.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...