split is not working the way you expect it to in your code because the first argument to split is a regular expression. Since "." is a special character in a regex, it must be escaped. I think this does what you expect:
my ( $int, $float ) = split /\./, $num;