Nope. Both 07 and 08 *as literals* (i.e. either specified directly in
your source or passed to eval STRING) are interpreted as octal numbers.
07 is a valid octal representation of the number 7; this number can also
be written 0x7 if you like hex, or 0b111 if you like binary
. 08 is
not a valid octal representation of any number, since 8 is not an octal
digit.
Why are you trying to eval a string consisting of a single number
anyway? You do know Perl will autoconvert a string to a number if you
use it as one, and in *this* case it always uses decimal? So "08" + 1
evaluates to 9, as you'd expect. If you're trying to 'normalise' the
representation of the number (get rid of the leading zeros, etc.) you
can force a numeric conversion by adding 0.
~% perl -le'print 0 + "08"'
9