【问题标题】:How to use Perl CGI::XMLPost correctly?如何正确使用 Perl CGI::XMLPost?
【发布时间】:2014-09-03 11:01:08
【问题描述】:

我正在使用 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 可能会破坏上面的简单代码sn-p?有没有更可靠的方法来实现相同的功能?

【问题讨论】:

    标签: perl cgi


    【解决方案1】:

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

    我认为您需要准确了解您从构造函数中得到了什么。尝试打印出$xmlpostref $xmlpost 看看你有什么。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 2013-05-25
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      相关资源
      最近更新 更多