Node:Special Characters in Single-quoted Strings, Next:Newlines in Single-quoted Strings, Previous:Single-quoted Strings, Up: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:
\' yields the character ' in the actual
string. (This is the exception we already discussed above).
\\ yields the character \ in the actual
string. In other words, two backslashes right next to each other
actually yield only one backslash.
\ 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!