2

$ 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は要素のハッシュを持つ配列であり、そのハッシュの最初の要素は文字列ですが、2番目の要素は2つの文字列要素を保持する配列です。

私はそれについて間違っていますか?もしそうなら、ここで何が起こっているのか、そしてそれらの要素をで取得する方法を教えてください%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],
);

Perlでの参照の使用について詳しくは、 perlrefのマニュアルページをお読みになることをお勧めします。

于 2011-10-04T14:06:10.020 に答える
1

eugene yの答えは、特定のユースケースを示しています。perldoc perlreftut詳細と全文を学ぶにはperldoc perlref

于 2011-10-04T14:08:45.440 に答える