【发布时间】:2011-06-16 16:31:14
【问题描述】:
我对 Perl 比较陌生,正在编写一些 XML 解析脚本。我已经成功完成了两个,这是我的第三个。我遇到了一些我认为与被 ASCII 编码的 XML 文档相关的问题。
我正在使用带有 httpd/apache/perl 的 Fedora 14
我有
use CGI::Carp qw(fatalsToBrowser);
在我的网络脚本中,所以我确实在网页上看到了大部分错误,但对于以下错误,我在屏幕上没有看到任何错误,除了通用 Apache“500 内部服务器错误”和httpd 错误日志只是说明“脚本头过早结束”
这里是代码的要点:
my $cparser = new XML::DOM::Parser;
my $refdoc = $cparser->parse($cfile, ProtocolEncoding => 'US-ASCII');
findmynodes $refdoc;
...
sub findmynodes
{
my @refnode = $_0->findnodes("/conf:ConfModel");
...
我确定 $_[0] 可以,因为如果我将 $_0 打印到文件中,我会看到“XML::DOM::Document=ARRAY(0x8bb65b8)”
我也确定 findnodes 是罪魁祸首。如果我执行 findnodes("//*") 则事件失败。
有人知道问题出在哪里吗?我如何才能找到有关失败的更多信息?
谢谢,
埃里克
【问题讨论】:
-
在你的代码中你有
$_[0]或$_0吗?$_0与$_[0]不同,它只是标量变量$_0。use strict;会告诉你。 -
是的,@mirod,这就是答案 :) 你想发布一个答案以便我可以将其标记为答案吗?