【发布时间】: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”运行时,它运行良好。谢谢!