I have a variable called $ip_data and when I do 'print $ip_data;' it shows something like this: ARRAY(0x3c353cc4);
Data::Dump gives me the following structure:
[
{
ip => "127.0.0.1",
list => [
"France",
"Safari",
],
},
]
I would like to extract ip
(IP address), country
and browser
and put it in a hash that looks like this:
%ip_info = ( ip => '127.0.0.1',
country => 'France',
browser => 'Safari' );
So far all my attempts to dereference it have failed. As I understand it $ip_data is an array that has a hash for an element, and that hash's first element is a string, but the second is an array holding two string elements.
Am I wrong about it? If so please tell me what's going on here and how to get those elements in %ip_info
.
$ip_data
is a reference to array containing a single element (a hash reference). You can construct your hash like this:
my %ip_info = (
ip => $ip_data->[0]{ip},
country => $ip_data->[0]{list}[0],
browser => $ip_data->[0]{list}[1],
);
I suggest you to read the perlref manual page to find out more about using references in Perl.