Perl Tutorials - Herong's Tutorial Examples
Dr. Herong Yang, Version 5.00

Scalar Value Constructors

This section describes what is a scalar value constructor, a numeric literal or a string literal, and what are syntax rules on using scalar value constructors.

Scalar value constructors are used to construct scalar values. There are two types of scalar value constructors: numerical literals and string literals.

Numerical literals must follow these rules:

  • An integer scalar value can be constructed by a numerical literal in a decimal format. For example, 32 and -9876.
  • An integer scalar value can be constructed by a numerical literal in a hex format. For example, 0x20 and 0xAFAF.
  • An integer scalar value can be constructed by a numerical literal in a binary format. For example, 0b00100000 and 0b1010111110101111.
  • A real number scalar value can be constructed by a numerical literal in a floating point format. For example, 8.8 and -9.99e+50.
  • Underscore characters can be used between digits in numerical literals to increase legibility. For example, 0xAF_AF and 0b1010_1111_1010_1111.

String literals must follow these rules:

  • A string scalar value can be constructed by a string literal in the double quote format. For example, "Hello world!" and "-9.99e+50".
  • A string scalar value can be constructed by a string literal in the single quote format. For example, 'Hello world!' and '-9.99e+50'.
  • Only two backslash substitutions, \' and \\ can b, are allowed in the single quote format. For example, 'Herong\'s Book' and 'C:\\WINDOWS'.
  • Many backslash substitutions, \", \\, \n, ..., are allowed in the double quote format. For example, "He said: \"Nice job!\"" and "1\n\n12\n123".

Here are some examples to help you understand better what are good or bad scalar value constructors:

   1; # ok
   8.8; # ok
   9.9.9; # bad, not a numeric literal
   1e-1; # ok
   1e+50; # ok
   1.0d; # bad, no double floating point format allowed
   '3.14'; # ok
   1a; # bad, not a numeric literal and not a string literal
   'hello'; # ok
   'dir \\home\\herong'; # ok
   'Herong's Notes'; # bad, need a backslash substitution \'
   "Herong's Notes"; # ok
   'Hello world!\n'; # ok, but \n is not a backslash substitution here

Sections in This Chapter

Scalar Values and List Values

Scalar Value Constructors

Scalar Value Interpretation

List Value Constructors

Variables - Scalar, Array and Hash

Using Scalar Variables

Using Array Variables

Using Hash Variables

"undef" Value and Undefined Variables

Dr. Herong Yang, updated in 2008
Scalar Value Constructors