【问题标题】:Perl, "Can't locate object method "new"Perl,“找不到对象方法”新“
【发布时间】:2014-11-17 21:04:04
【问题描述】:

我有一些在我的 Mac 上运行良好的 perl 代码。我将它移到客户端 linux 框,尝试使用 XML::Simple 时出现错误:

#! usr/local/bin/perl5
#use strict;
#use warnings;
use XML::Simple;

# open xml file
my $product = XMLin('xml/ASSET_ALLOCATION_QFR.XML');

这是显示错误的最少代码:

"Can't locate object method "new" via package "XML::LibXML::SAX"

...继续列出与我在 #! 中指定的路径不同的路径!线。它看起来像“usr/opt/perl5...”

它在我的 Mac 上运行但在 Linux 上不运行有什么不同,我该如何解决?为什么我在使用 Simple 时会提到 LibXML 包?

谢谢

【问题讨论】:

  • XML::Simple 不是解析器。它依赖于其他模块来进行实际的解析。您安装的模块似乎搞砸了。如果你这样做/usr/local/bin/perl5 -e'use XML::LibXML::SAX; print "ok\n"',你会得到什么?
  • 感谢池上。您建议的测试打印正常。我发现了问题所在。我正在运行这样的脚本:“pert test.pl”,它绕过了 shebang 之后引用的特殊安装。当我将它作为“perl5 test.pl”运行时,它运行良好。谢谢!

标签: xml linux macos perl


【解决方案1】:

你的shebang是错的,你应该在开头有一个斜线:

#!/usr/local/bin/perl5

你需要安装 XML::LibXML::SAX,听起来像。使用这个:

cpan XML::LibXML::SAX

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 2019-06-15
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    相关资源
    最近更新 更多