Node:Examples of Interpolation (ASCII Octal Values), Next:, Previous:Examples of Interpolation, Up:Double-quoted Strings



Examples of Interpolation (ASCII Octal Values)

With the exception of \n, you should note that the interpolated sequences are simply shortcuts for actually ASCII characters that can be expressed in other ways. Specifically, you are permitted to use the actual ASCII codes (in octal or hexadecimal) to represent characters. To exemplify this, consider the following program:

     #!/usr/bin/perl
     
     use strict;
     use warnings;
     
     print "A backslash: \134\n";
     print "Tab follows:\11over here\n";
     print "Ring! \7\n";
     print "Please pay bkuhn\100ebb.org \04420.\n";
     

This program generates exactly the same output as the program we first discussed in this section. However, instead of using the so-called "shortcuts" for the ASCII values, we wrote each character in question using the octal value of that character. Comparing the two programs should provide some insight into the use of octal values in double-quoted strings.

Basically, you simply write \XYZ, where XYZ is the octal number of the ASCII character desired. Note that you don't always need to write all three digits. Namely, notice that the double-quoted string, "Ring! \7\n", did not require all the digits. This is because in the string, the octal value is immediately followed by another \, and thus Perl could figure out what we meant. This is one of the many cases where you see Perl trying to "do the right thing" when you do something that is technically not completely legal.

However, note that, in the last string, the three digits are required for the sequence ("\04420"), because the 20 immediately following the octal code could be easily confused with the octal value preceding it. The point, however, is that as long as you obey the rules for doing so, you can often add characters to your double-quoted strings by simply using the ASCII value.