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中没有任何值。任何人都可以帮助我吗?
答案 0 :(得分:3)
您收到错误消息了吗?如果是这样,它是什么?
您是否考虑过检查HTML::TagParser->new()
的返回值?如果它失败了,它可能会默默地执行此操作,并且只有在您尝试使用$html
对象时才会发现。
我认为您递交给它的网址看起来很奇怪。
"\'http://".$server.":4080/cgi-bin/gen_graph.pl?view=5&SUBSYS=\'"
为什么两层报价? (双引号,然后转义单引号)。这不会起作用:
my $url = 'http://'
. $server
. ':4080/cgi-bin-gen_graph.pl?view=5&SUBSYS=';
(添加了额外的空格,以便更容易阅读连接运算符。)