• ベストアンサー

perlのハッシュについて

perlのハッシュでキーから値を得ることは出来ますが、その逆に値からキーを得るような関数ってありますか?探してもみつかりませんでした。識者の方々教えてください。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

ん~, それくらいなら特に困ることもなく @keys = grep { $hash{$_} eq $value; } keys %hash; で終わり (比較に何を使えばいいのかは知らん) では?

yamada11
質問者

お礼

返事遅れまして申し訳ございません。keys等を使って参照したりすると、毎回毎回全部のキーを参照する形になるのかなと思い、他にリソースをあまり消費しない関数があればと思っていました。でも、他にはないように思います ありがとうございました

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

ん, それは一瞬迷った. メモリだけの問題なら, each 使って逃げられそう (同程度に時間はかかる). 「ハッシュを tie してど~のこ~の」までやればできる場面もありえなくはないんだけど, ちとやりすぎかなと思ったり.

yamada11
質問者

お礼

やはり思いますよね。必要性を感じたらまたここに質問にきてしまうかもしれません・・・。とりあえず、keys等を使い使ってみます。 回答ありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

作ればあるけど.... 「複数のキーに対して同じ値が設定されている」場合にはどうするの?

yamada11
質問者

お礼

回答ありがとうございます。やはり作るしかないのですね。 >>「複数のキーに対して同じ値が設定されている」場合にはどうするの? その場合その異なるキー全てを抽出する形にするプログラムです。

関連するQ&A