in reply to <STDIN> always in string mode?
$foo = <STDIN>; if ($foo =~ /^(\d*)$/) { $foo = eval $1; print "foo: $foo\n" } else { die "bad input" } [download]