ハッシュのハッシュを行いたいですがうまくいきません。
◆正しい例
%ultraman = (
TARO => { cpu => "Celeron(266MHz)",
memory=> "32MB",
hdd => "4.3GB",
},
JACK => { cpu => "Pentium2(333Mhz*2)",
memory=> "128MB",
hdd => "9GB*4",
},
);
$name = "JACK";
$item = "cpu";
print "\$ultraman{$name}{$item}=[$ultraman{$name}{$item}]";
exit(0);
__END__
◆このように使えたら便利(要はハッシュの代入でハッシュのハッシュを実現したい)
%a=();
%b = ("cpu"=>"aaaa", "memory"=>"bbbb");
$a{'JACK'} = %b; #---> このように代入したい
$name = "JACK";
$item = "cpu";
print "\$a{$name}{$item}=[$a{$name}{$item}]";
exit(0);
__END__
No.3ベストアンサー
- 回答日時:
$hash{'key'} = %value;
のように、ハッシュの値としてハッシュを代入すること
はできません。コンパイルは通りますが意味不明の結果
となります。
ハッシュの値として使えるのはスカラーです。
従いまして、ハッシュのハッシュを実現するためには
リファレンスを使う必要があります。リファレンスは
スカラーの一種です。
メソッド1
$hash{'key'} = \%value;
メソッド2
$hash{'key'} = {'key' => 'value'};
メソッド3
$value_hash = {'key' => 'value'};
$hash{'key'} = $value_hash;
ご参考になれば幸いです。
No.1
- 回答日時:
$a{'JACK'} = \%b; #("\"を追加)
わずかな違いのようで、
実は大きな違いというべきなのかもしれませんが、
詳細は書籍などにおまかせします(^^;
ポイントとしては、
「参照」の扱い方が絡んでいます。
そのあたりを確認されてみると他にも面白い発見があるかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlでハッシュや配列で重複す...
-
Perlは戻り値で、ハッシュや配...
-
チェックデジットについて
-
一意(ユニーク)かつ、ソート...
-
列挙型と連想配列の違いを教え...
-
文字列を変数名として扱う方法
-
英語でのシャープとコメの呼び...
-
CSVファイルにあるメールアドレ...
-
ハッシュ検索はなぜ速い
-
重複ファイルを削除したいので...
-
ハッシュの考え方、使用例を分...
-
ハッシュ値によるファイルの同...
-
画面を強制的に再描画させる方法
-
VBA for i=1 to lastrow
-
DoEventsが必要な理由について
-
クラスに配列を渡す方法
-
VBのReturnの使い方
-
VBA Dir関数でファイルをループ...
-
スレッド起動したフォームを正...
-
Escキーを押すと、中断する時と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字列を変数名として扱う方法
-
ハッシュ検索はなぜ速い
-
チェックデジットについて
-
perl 文字列検索後に指定フィー...
-
perlで配列名を動的に作り出したい
-
列挙型と連想配列の違いを教え...
-
英語でのシャープとコメの呼び...
-
ハッシュのハッシュを実現したい。
-
動的なハッシュの配列を作成したい
-
多次元連想配列の削除
-
多次元配列から重複を削除
-
ハッシュリストって単にハッシ...
-
ハッシュ値が一致したデータは...
-
まったく同じファイルのハッシ...
-
*(アスタリスク)の意味
-
ハッシュマーク以降のアドレス取得
-
Perlのサブルーチンの引数に配...
-
UTF-8で書かれたJSPの日本語文...
-
連想配列のサイズ制限
-
Perlは戻り値で、ハッシュや配...
おすすめ情報