2

我有一个名为 $ip_data 的变量,当我执行“打印 $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.

4

2 回答 2

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 中使用引用的更多信息。

于 2011-10-04T14:06:10.020 回答
1

eugene y's answer给你你的具体用例。要了解更多信息perldoc perlreftut,请阅读全文perldoc perlref

于 2011-10-04T14:08:45.440 回答