• ベストアンサー

十進数値の表現の違い

こんにちは。 perlでの数値の扱いで困っています。 ハッシュのキーとして、数値を使いたいのですが、例えば、 %h $h{'1'}; $h{'01'}; $h{' 1'}; とした場合、これらは全て異なるキーとされてしまいます。 これらを同じキーととして扱いたいのですが、どのようにするのがよいのでしょうか? 数値は10進数で構いません。よろしくお願いします。

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

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

「0 を足す」のがお約束かと.

titokani
質問者

お礼

ありがとうございます。うまくいきました。 $key='01'; $key+=0; $h{$key}=~; という感じです。 あまり美しくない感じではありますが、「お約束」ということは、 これで普通なんですね(^^;

その他の回答 (1)

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

たぶんキーに直接 $h{$key+0} と書いてもいいんじゃないかな. 値を考える限り「1 を掛ける」でも同じはずなんですが, 通例「0 を足す」と思います. 「文字列から数値への変換関数」をオーバーロードしたいときも「+0」というキーで表されますし.

titokani
質問者

お礼

>$h{$key+0} ありがとうございます。こちらも動きました。 >通例「0 を足す」と思います. そういうもんなんですね。 いまだperlになじんでいないところがあるので、勉強になりました。

関連するQ&A