perlの変数の型

プログラムをしていて,標準入力から読み込むサンプルを書いて動かなかったので,もしかしたら型の問題かもしれないと思った次第

#!/usr/bin/perl
my $in;
$in = ;
if($in eq '1'){
    print "ont\n";
}elsif($in eq '2'){
    print "two\n";
}
exit;

こんなサンプルを書いたのに意図した通りに動かない.今朝もしかして

if($in == "1"){

で良いのか?と思いついた.
変数の型を*1意識しなくて良いのは楽なのだが,それが原因で嵌っている模様.
変数の内容が文字列なのか,数*2なのか調べる関数って無いのかな?
C言語なら'\0'*3されているかどうかとかで判定できそうだけど,まぁ実際には意味無いんだけど.
ん〜 難しいなぁ CはWinでもLinuxでもあるから時々思い立ったときに書いて実験できるけどperlは入れていない.入れるならActivePerlかな?

追記:やっぱり "=="でよかったみたい.ん〜 どうしてこうなるかなぁ・・・

*1:C言語で言うところのchar とかintとか

*2:整数とか実数とか

*3:NULLターミネート