in reply to Changing a loop based on the nature of a reference
Stab in the dark: XML::Simple? You might look at the ForceArray => 1 option. IIRC that would solve your issue by making them all arrays.
Tangent-
if ( $content->{Addresses}{ArrayOfAddressResponse}{AddressResponse} =~ /ARRAY/ )-is probably better as something like-
my $item = $content->{Addresses}{ArrayOfAddressResponse}{AddressRespon +se}; if ( ref($item) eq 'ARRAY' ) ...
Update: there's also this sort of thing-
my $address_ref = $content->{Addresses}{ArrayOfAddressResponse}{Addres +sResponse}; my $addresses = ref($address_ref) eq 'HASH' ? [ $address_ref ] : $address_ref;
-which will always give you back an array ref of hashes. Note that it doesn't account for unexpected values, e.g., undef, a scalar, a different type of ref, etc.
|
|---|