こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

変数の定義について

perl中級者です。

とあるPGMの修正を頼まれて行っていたのですが、
変数の定義において
print "$ABC{$DEF}\n"
という記述がありました。

$ABC$DEF や $ABC[$DEF]、 $ABC${DEF} という記述は使用しますが、
$ABC{$DEF} のような記述ってあるのでしょうか?

前後の処理は関係無しにこのような表現があるのかどうかを教えてください。
また、その場合print等で表現すると、
どのような表示になるのでしょうか?

perl:Ver4
開発環境:HP-UX

以上、よろしくお願いいたします。

投稿日時 - 2005-12-13 09:56:02

QNo.1836113

困ってます

質問者が選んだベストアンサー

現在は、ハッシュといわれていますが、かつては連想配列といわれていました。
これは、配列の添え字として文字をつかうことが、出来る特殊な配列です。
たとえば、
A君の年齢=16 住所=SHINJUKU
B君の年齢=18 住所=SHIBUYA
とすると
------------------
$nenrei{"A"} = 16;
$nenrei{"B"} = 18;
$jusho{"A"} = "SHINJUKU";
$jusho{"B"} = "SHIBUYA";
$name = "A"; #A君の名前
print "名前:$name"," 年齢:$nenrei{$name}"," 住所:$jusho{$name}","\n";
$name = "B"; #B君の名前
print "名前:$name"," 年齢:$nenrei{$name}"," 住所:$jusho{$name}","\n";
---------------------------
を実行すると
名前:A 年齢:16 住所:SHINJUKU
名前:B 年齢:18 住所:SHIBUYA
となります。

投稿日時 - 2005-12-13 11:39:53

お礼

早速のご回答ありがとうございます。
連想配列で間違いないようです。

正直あまり使ったことのない記述ですので
頭にありませんでした。
助かりました。

投稿日時 - 2005-12-14 10:50:15

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

単純に中括弧を出力したいだけなのかもしれません。
その場合は、

print "$ABC\{$DEF\}\n";

ですが・・・

投稿日時 - 2005-12-13 10:30:11

お礼

早速のご回答ありがとうございます。
どうやら連想配列のようです。
参考になりました、、、

投稿日時 - 2005-12-14 10:49:03

ANo.1

連想配列ではないですか?

http://www.google.co.jp/search?hl=ja&q=perl+%E9%80%A3%E6%83%B3%E9%85%8D%E5%88%97&lr=

投稿日時 - 2005-12-13 10:23:15

お礼

早速のご回答ありがとうございます。
どうやらそれっぽいです。
助かりました。

投稿日時 - 2005-12-14 10:47:45