Perlについての質問箱 37箱目
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
50:デフォルトの名無しさん 08/08/13 17:05:28 >>45 意図しないデリファレンスを避けたきゃ、変数名の範囲をブレースで囲めばいいだけだろ? 基本だぞ。>>48氏も一部で使ってるけど。 # 変な部分(作法の面で)はあくまでも例ということでご容赦。 $x = 'hoge' ; $x->{hoge} = 'foo' ; print "$x->{hoge}\n" ; # => foo が返る。ほんとは hoge->{hoge} を期待してたら↓ print "${x}->{hoge}\n" ; # => hoge->{hoge} (無用のデリファレンスを避けられる) 51:デフォルトの名無しさん 08/08/13 17:06:47 シングルコーテーションと.演算子を使うように心がければ何も悩む必要はない 52:デフォルトの名無しさん 08/08/13 18:32:06 ┌────────┐ │変数名─アドレス │ │ │ │ データ │ └────────┘ 変数名が$hogeでデータがテステスの時 つまり$hoge = "テステス"の時、 print $hoge;だとデータ部分が表示されて print \$hoge;だとアドレス部分が表示されるけど print \\$hoge;も問題なく表示できると言うことは この時内部的に\$hogeというアドレスをデータに持つリファレンスが生成されていて その内部で生成されたリファレンスのアドレスが表示されていると言うこと? つまりprint \\$hogeの裏側では↓こういうのが内部で行われてるんですか? $hoge_reference = \$hoge; print \$hoge_reference; ┌────────┐ │$hoge_r─\$hoge_r.│ │ │ │ \$hoge │ └───╂────┘ ┌──────╂─┐ │ $hoge ─ \$hoge │ │ │ │. テステス │ └────────┘
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4393日前に更新/239 KB
担当:undef