我有一个名为$ ip_data的变量,当我执行' print $ ip_data;' 它显示如下:ARRAY(0x3c353cc4);
Data :: Dump给了我以下结构:
[
{
ip => "127.0.0.1",
list => [
"France",
"Safari",
],
},
]
我想提取ip
(IP地址),country
和browser
并将其放在一个如下所示的哈希值中:
%ip_info = ( ip => '127.0.0.1',
country => 'France',
browser => 'Safari' );
到目前为止,我所有取消引用它的尝试都失败了。据我所知,$ ip_data是一个具有元素哈希的数组,该哈希的第一个元素是一个字符串,但第二个元素是一个包含两个字符串元素的数组。
我错了吗?如果是这样,请告诉我这里发生了什么以及如何在%ip_info
中获取这些元素。
答案 0 :(得分:3)
$ip_data
是对包含单个元素(哈希引用)的数组的引用。您可以像这样构建哈希:
my %ip_info = (
ip => $ip_data->[0]{ip},
country => $ip_data->[0]{list}[0],
browser => $ip_data->[0]{list}[1],
);
我建议您阅读perlref手册页,了解有关在Perl中使用引用的更多信息。
答案 1 :(得分:1)
perldoc perlreftut
和完整故事perldoc perlref