0

Given the following XML::Simple object how would I copy one of the key values into a scalar assignment. The output below if from print Dumper($xmlobjectreturnedfrommodule);.

$VAR1 = {
          'Address2' => {},
          'City' => {},
          'EmailAddress' => {},
          'FName' => {},
          'PostalCode' => {},
          'LoginID' => {},
          'StateProvinceChoice' => {},
          'StateProvince' => {},
          'Phone' => {},
          'Country' => {},
          'Site' => {},
          'Address1' => {},
          'PhoneExt' => {},
          'LName' => {},
          'OrganizationName' => {},
          'Fax' => {}
        };

Normally with a hashref I would just using something like the following:

print $xmlobjectreturnedfrommodule->{'LoginID'};

but it is returning the following HASH(0x1e32640) instead of the keys value in the hashref. Is there something about XML::Simple that is causing this or am I missing something?

1 Answer 1

3

What you are doing is right. Check this:

#!/usr/bin/perl
use strict;
use warnings;

my $VAR1 = {
          'LoginID' => {},
        };

print $VAR1->{LoginID};

Output:

HASH(0x8231818)

the LoginID is pointing to a hash reference which is essentially empty. If you modify the code as below, then you will get an empty hash:

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

my $VAR1 = {
          'LoginID' => {},
        };

print Dumper ($VAR1->{LoginID});

OutPut:

$VAR1 = {};

but it is returning the following HASH(0x1e32640) instead of the keys value in the hashref. Is there something about XML::Simple that is causing this or am I missing something?

The way you are printing it (print $xmlobjectreturnedfrommodule->{'LoginID'};), it will never return keys/values of the hasref irrespective of whether the hashref is empty or not. It will always return something like HASH(0x1e32640) because that's what $xmlobjectreturnedfrommodule->{'LoginID'} is holding. In other words, {} is a hash reference.

To print the keys/values, you need walk through the hash using a for loop and retrieve keys/values.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.