如何正确使用Perl CGI :: XMLPost?

时间:2014-09-03 11:01:09

标签: perl cgi

我完全按照文档中的说明使用perl模块CGI::XMLPost,并收到以下错误:

  

无法调用方法"数据"在/home/app/public_html/Post.pl第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可能会破坏上述简单的代码段?是否有更可靠的方法来实现相同的功能?

1 个答案:

答案 0 :(得分:0)

您的错误表明您正在对不是包名称或对象引用的值调用data()方法。这似乎很奇怪,the constructor应该只返回一个有效的对象或" undef"。

我认为您需要确切了解您从构造函数中获取的内容。尝试打印$xmlpostref $xmlpost以查看您的内容。

但值得指出的是,该模块的最新版本是从2006年开始的。它可能不再适用于更新的系统。