- ベストアンサー
十進数値の表現の違い
こんにちは。 perlでの数値の扱いで困っています。 ハッシュのキーとして、数値を使いたいのですが、例えば、 %h $h{'1'}; $h{'01'}; $h{' 1'}; とした場合、これらは全て異なるキーとされてしまいます。 これらを同じキーととして扱いたいのですが、どのようにするのがよいのでしょうか? 数値は10進数で構いません。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「0 を足す」のがお約束かと.
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
たぶんキーに直接 $h{$key+0} と書いてもいいんじゃないかな. 値を考える限り「1 を掛ける」でも同じはずなんですが, 通例「0 を足す」と思います. 「文字列から数値への変換関数」をオーバーロードしたいときも「+0」というキーで表されますし.
質問者
お礼
>$h{$key+0} ありがとうございます。こちらも動きました。 >通例「0 を足す」と思います. そういうもんなんですね。 いまだperlになじんでいないところがあるので、勉強になりました。
お礼
ありがとうございます。うまくいきました。 $key='01'; $key+=0; $h{$key}=~; という感じです。 あまり美しくない感じではありますが、「お約束」ということは、 これで普通なんですね(^^;