InMotion Web Site Hosting
InMotion Hosting Home




Node:Special Characters in Single-quoted Strings, Next:, Previous:Single-quoted Strings, Up:Single-quoted Strings



Special Characters in Single-quoted Strings

There are two characters in single quoted strings that do not always represent themselves. This is due to necessity, since single-quoted strings start and end with the ' character. We need a way to express inside a single-quoted string that we want the string to contain a ' character.

The solution to this problem is to preceded any ' characters we actually want to appear in the string itself with the backslash (\ character). Thus we have strings like this:

'xxx\'xxx';  # xxx, a single-quote character, and then xxx

We have in this example a string with 7 characters exactly. Namely, this is the string: xxx'xxx. It can be difficult at first to become accustomed to the idea that two characters in the input to Perl actually produce only one character in the string itself. 1 However, just keep in mind the rules and you will probably get used to them quickly.

Since we have used the \ character to do something special with the ' character, we must now worry about the special cases for the backslash character itself. When we see a \ character in a single-quoted string, we must carefully consider what will happen.

Under most circumstances, when a \ is in a single-quoted string, it is simply a backslash, representing itself, as most other characters do. However, the following exceptions apply:

  • The sequence \' yields the character ' in the actual string. (This is the exception we already discussed above).
  • The sequence \\ yields the character \ in the actual string. In other words, two backslashes right next to each other actually yield only one backslash.
  • A backslash, by itself, cannot be placed at the end of a the single-quoted string. This cannot happen because Perl will think that you are using the \ to escape the closing '.

The following examples exemplify the various exceptions, and use them properly:

'I don\'t think so.';          # Note the ' inside is escaped with \
'Need a \\ (backslash) or \?'; # The \\ gives us \, as does \
'You can do this: \\';         # A single backslash at the end
'Three \\\'s: "\\\\\"';        # There are three \ chars between ""

In the last example, note that the resulting string is Three \'s: "\\\". If you can follow that example, you have definitely mastered how single-quoted strings work!


Footnotes

  1. C programmers are already probably used to this idea.




InMotion Web Hosting Customer Support
M-F 8am - 7pm PST
213-239-0050

More information can be found at the InMotion Hosting Main Site