Why do I get a divide-by-zero error?

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:

Code:

` 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:

Code:

`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:

Code:

`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?

Thanks