in reply to splitting a decimal number..

You can use POSIX::modf:
$ perl -MPOSIX -le ' my($f,$i)=POSIX::modf(3.14); print "f=$f; i=$i";' f=0.14; i=3

That might be more reliable than simple subtraction with negative numbers.