2.2 NumbersAlthough a scalar is either a number or a string,[ 1 ] consider numbers and strings separately for the moment. Numbers first, strings in a minute...
2.2.1 All Numbers Use the Same Format InternallyAs you'll see in the next few paragraphs, you can specify both integers (whole numbers, like 17 or 342) and floatingpoint numbers (real numbers with decimal points, like 3.14, or 1.35 times 10^{ 25} ). But internally, Perl computes only with doubleprecision floatingpoint values.[ 2 ] This means that there are no integer values internal to Perl; an integer constant in the program is treated as the equivalent floatingpoint value.[ 3 ] You probably won't notice the conversion (or care much), but you should stop looking for integer operations (as opposed to floatingpoint operations), because there aren't any.
2.2.2 Float LiteralsA literal is the way a value is represented in the text of the Perl program. You could also call this a constant in your program, but we'll use the term literal. Literals are the way in which data is represented in the source code of your program as input to the Perl compiler. (Data that is read from or written to files is treated similarly, but not identically.)
Perl accepts the complete set of floatingpoint literals available to C programmers. Numbers with and without
decimal points are allowed (including an optional plus or minus prefix), as well as tacking on a powerof10 indicator (
exponential notation) with 1.25 # about 1 and a quarter 7.25e45 # 7.25 times 10 to the 45th power (a big number) 6.5e24 # negative 6.5 times 10 to the 24th # (a "big" negative number) 12e24 # negative 12 times 10 to the 24th # (a very small negative number) 1.2E23 # another way to say that 2.2.3 Integer LiteralsInteger literals are also straightforward, as in: 12 15 2004 3485
Don't start the number with a 0, because Perl supports
octal and
hexadecimal (hex) literals. Octal numbers start with a leading 0, and hex numbers start with a leading
0377 # 377 octal, same as 255 decimal 0xff # negative FF hex, same as 255 decimal 
