I found this forum thanks to an old post on how to check whether a number is an integer:

Quote Originally Posted by KevinR
in your example this would be simple:
    if (/\D/) {
       is not an integer
the regular expression checks if there are any non-digit characters in the string. Since there is a dot it returns true and the string is not an integer.
I wrote a one-line program to try this out, with unexpected results:

perl -e 'print "Result of division is not an integer.\n" if 14/7 =~/\D/'
Illegal division by zero at -e line 1.
Why the error? Clearly, I'm dividing by seven. Here's a very similar one-liner that works as expected:

perl -e 'print "Fourteen divided by seven is two.\n" if 14/7 == 2'
Fourteen divided by seven is two.
Why does the first give a divide-by-zero error, while the second does not?