$bar="1"と$foo=1を区別したいのですが、
文字と数値を判断する方法ってありますか?

文字列なら cmp で数値なら <=> で比較したいのです。