xml::simple的一个问题,一直未解决

xml::simple的一个问题,一直未解决

某项为空的时候怎么处理?如下:
<configure>
        <driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver>
                <file>file/config</file>
        <date></date>
</configure>

*****
use XML::Simple;
$config='config.xml';
my $newxml =XML::Simple->new();
my $data = undef;
$data = eval{ $newxml->XMLin($config); };
$fasta=$data->{'date'}
print $fasta;

date值不为空,很好处理。如<date></date>不存在,也能处理,但如果存在,但里面没有值,如上,就会报个hash出来,感觉这应该是个异常。。但一直不知道怎么处理,期待的结果应该是空。
有人知道怎么办吗?
谢谢

没看懂你什么意思

什么叫报出个 hash 来

我看了看,处理的好好的啊
你确定你打印$fasta的时候,结果是空而不是类似于HASH(0x898f20)的hash??

QUOTE:
原帖由 cobrawgl 于 2008-12-16 13:29 发表
没看懂你什么意思

什么叫报出个 hash 来

我看了看,处理的好好的啊

我确定啊
见鬼了。不是吧。。我这一直是类似于HASH(0x898ca0)的hash,而且我之前也遇到过类似的问题。。。
怎么回事。。。。

QUOTE:
原帖由 cobrawgl 于 2008-12-16 14:54 发表
我确定啊



QUOTE:
原帖由 yiqiume 于 2008-12-16 15:23 发表
见鬼了。不是吧。。我这一直是类似于HASH(0x898ca0)的hash,而且我之前也遇到过类似的问题。。。
怎么回事。。。。

#!/usr/bin/perl

use strict;
use warnings;

use XML::Simple;
use Data::Dumper;

my $configure = qq{
<configure>
        <driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver>
                <file>file/config</file>
        <date></date>
</configure>
};

my $xml = XMLin($configure);


print Dumper $xml->{data};

------

$VAR1 = undef

哦,你用dumper了。平时用的时候一般不用啊,你看我上面的程序,难道我对每一个输出都加dumper吗?怎么把它赋给一个变量呢?
我总觉得这是一个异常,因为有值和无值需要区别对待。。。很多时候我不能预知是否有值,烦哪、、、、

QUOTE:
原帖由 cobrawgl 于 2008-12-16 15:29 发表

#!/usr/bin/perl

use strict;
use warnings;

use XML::Simple;
use Data:umper;

my $configure = qq{

        com.microsoft.jdbc.sqlserver.SQLServerDriver
                file/config
...

简单判断一下:
#$fasta=$data->{'date'}

if (ref($fasta) eq "HASH") {
    $fasta = "";
}
恩,以前就是这么干的。但我总觉得,如果提取的量很多的话,每次都要判断,是不是太麻烦了点?为什么xml::simple 对此没有一个给定的处理方法呢?返回空不就可以了吗。。

QUOTE:
原帖由 lvlfforever 于 2008-12-16 15:58 发表
简单判断一下:
#$fasta=$data->{'date'}

if (ref($fasta) eq "HASH") {
    $fasta = "";
}

这个可能是xml::simple的问题,可以试着给作者写mail反映问题, 呵呵