Perl:在标量上下文中访问XML::Simple值
给定以下对象,如何将其中一个键值复制到标量赋值中。如果来自Perl:在标量上下文中访问XML::Simple值,perl,xml-simple,Perl,Xml Simple,给定以下对象,如何将其中一个键值复制到标量赋值中。如果来自打印转储程序($xmlobjectreturnedfrommodule),则下面的输出 通常使用hashref时,我会使用如下内容: print $xmlobjectreturnedfrommodule->{'LoginID'}; 但是它返回以下哈希(0x1e32640),而不是hashref中的keys值。是不是因为XML::Simple导致了这种情况,还是我遗漏了什么?您所做的是正确的。选中此项: #!/usr/bin/per
打印转储程序($xmlobjectreturnedfrommodule),则下面的输出代码>
通常使用hashref
时,我会使用如下内容:
print $xmlobjectreturnedfrommodule->{'LoginID'};
但是它返回以下哈希(0x1e32640),而不是hashref
中的keys值。是不是因为XML::Simple
导致了这种情况,还是我遗漏了什么?您所做的是正确的。选中此项:
#!/usr/bin/perl
use strict;
use warnings;
my $VAR1 = {
'LoginID' => {},
};
print $VAR1->{LoginID};
输出:
HASH(0x8231818)
$VAR1 = {};
LoginID
指向一个本质上为空的哈希引用。如果按以下方式修改代码,则会得到一个空哈希:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $VAR1 = {
'LoginID' => {},
};
print Dumper ($VAR1->{LoginID});
输出:
HASH(0x8231818)
$VAR1 = {};
但是它返回以下哈希(0x1e32640),而不是hashref
中的keys值。是XML::Simple导致了这种情况还是我遗漏了什么
您打印它的方式(print$xmlobjectreturnedfrommodule->{LoginID'};
),它永远不会返回hasref
的键/值,无论hasref
是否为空。它将始终返回类似于散列(0x1e32640)
的内容,因为$xmlobjectreturnedfrommodule->{LoginID'}
就是这样保存的。换句话说,{}
是一个散列引用
要打印键/值,您需要使用for
循环遍历散列并检索键/值。您所做的是正确的。选中此项:
#!/usr/bin/perl
use strict;
use warnings;
my $VAR1 = {
'LoginID' => {},
};
print $VAR1->{LoginID};
输出:
HASH(0x8231818)
$VAR1 = {};
LoginID
指向一个本质上为空的哈希引用。如果按以下方式修改代码,则会得到一个空哈希:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $VAR1 = {
'LoginID' => {},
};
print Dumper ($VAR1->{LoginID});
输出:
HASH(0x8231818)
$VAR1 = {};
但是它返回以下哈希(0x1e32640),而不是hashref
中的keys值。是XML::Simple导致了这种情况还是我遗漏了什么
您打印它的方式(print$xmlobjectreturnedfrommodule->{LoginID'};
),它永远不会返回hasref
的键/值,无论hasref
是否为空。它将始终返回类似于散列(0x1e32640)
的内容,因为$xmlobjectreturnedfrommodule->{LoginID'}
就是这样保存的。换句话说,{}
是一个散列引用
要打印键/值,您需要使用for
循环遍历散列并检索键/值。您所做的是正确的。选中此项:
#!/usr/bin/perl
use strict;
use warnings;
my $VAR1 = {
'LoginID' => {},
};
print $VAR1->{LoginID};
输出:
HASH(0x8231818)
$VAR1 = {};
LoginID
指向一个本质上为空的哈希引用。如果按以下方式修改代码,则会得到一个空哈希:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $VAR1 = {
'LoginID' => {},
};
print Dumper ($VAR1->{LoginID});
输出:
HASH(0x8231818)
$VAR1 = {};
但是它返回以下哈希(0x1e32640),而不是hashref
中的keys值。是XML::Simple导致了这种情况还是我遗漏了什么
您打印它的方式(print$xmlobjectreturnedfrommodule->{LoginID'};
),它永远不会返回hasref
的键/值,无论hasref
是否为空。它将始终返回类似于散列(0x1e32640)
的内容,因为$xmlobjectreturnedfrommodule->{LoginID'}
就是这样保存的。换句话说,{}
是一个散列引用
要打印键/值,您需要使用for
循环遍历散列并检索键/值。您所做的是正确的。选中此项:
#!/usr/bin/perl
use strict;
use warnings;
my $VAR1 = {
'LoginID' => {},
};
print $VAR1->{LoginID};
输出:
HASH(0x8231818)
$VAR1 = {};
LoginID
指向一个本质上为空的哈希引用。如果按以下方式修改代码,则会得到一个空哈希:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $VAR1 = {
'LoginID' => {},
};
print Dumper ($VAR1->{LoginID});
输出:
HASH(0x8231818)
$VAR1 = {};
但是它返回以下哈希(0x1e32640),而不是hashref
中的keys值。是XML::Simple导致了这种情况还是我遗漏了什么
您打印它的方式(print$xmlobjectreturnedfrommodule->{LoginID'};
),它永远不会返回hasref
的键/值,无论hasref
是否为空。它将始终返回类似于散列(0x1e32640)
的内容,因为$xmlobjectreturnedfrommodule->{LoginID'}
就是这样保存的。换句话说,{}
是一个散列引用
要打印键/值,需要使用for
循环遍历散列并检索键/值