Perlは文字列と数値をそれほど区別しないけどMongoDBは区別するので気をつけようという話

初心者のハマりがちなミスみたいな感じで虚しい…。

  • DBIx::Lite経由で数値$numを取得する
  • MongoDB::Collection#find({ num => $num })みたいなクエリを発行する
  • 結果が空になる!!どうして?!

結論としては、$numが実のところ文字列になっていたので、 文字列と数値を区別するMongoDBではマッチしないというオチだった…。

勝手に$numが数値であることを期待していたのが良くなかった。

疲れているようなので帰ろう…。