2014-09-03 52 views
0

我使用Perl模塊CGI::XMLPost完全按照文檔描述並得到以下錯誤:如何正確使用Perl CGI :: XMLPost?

Can't call method "data" without a package or object reference at /home/app/public_html/Post.pl line 45.

的代碼看起來是這樣的:

use strict; 
use CGI::XMLPost; 

my $xmlpost = CGI::XMLPost->new(); 
if(defined $xmlpost) { 
    my $xml = $xmlpost->data(); # crashes here 
    # ... do something with $xml 
} 

我試圖關閉use strict;看如果上游系統在網絡上執行POST以外的其他操作。它沒有任何區別。

僅供參考,以前版本的代碼打包了一個稍微定製的CGI :: XMLPost 1.5版本。這是適合使用read而不是sysread,這顯然不工作(沒有解釋提供)。

因爲我完全按照文檔,我錯過了什麼嗎?任何人都可以指出爲什麼sysread可能會破壞以上簡單的代碼片段?是否有更可靠的方法來實現相同的功能?

回答

0

您的錯誤表示您對不是包名稱或對象引用的值調用data()方法。這似乎很奇怪,因爲the constructor應該只返回一個有效的對象或「undef」。

我想你需要找出你正在從構造函數返回的東西。嘗試打印出$xmlpostref $xmlpost,看看你有什麼。

但值得指出的是,該模塊的最新版本是從2006年開始的。它有可能不再適用於更新的系統。