2011-05-06 62 views
1


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; 
} 


這裏行html :: tagparser無法正常工作

my @list = $html->getElementsByTagName("pre");
無法正常工作。如果我把它作爲一個單獨的腳本來運行,那麼它運行良好..但是如果我將它包含在另一個腳本中,那麼@list中沒有值。誰能幫我?

回答

3

您是否收到錯誤訊息?如果是這樣,那是什麼?

您是否想過檢查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='; 

(多餘的空格添加,使其更易於閱讀連接操作。)

+0

雅謝謝。這是問題的地方..我認爲單引號將是一個問題,並使它有兩層...我現在明白了...... – Cara 2011-05-06 05:30:46