Online Programming Reference Guides - Perl
[an error occurred while processing this directive]
Contents
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]
[an error occurred while processing this directive]

2.1.1.1 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. (3) 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!


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]
[an error occurred while processing this directive]


[an error occurred while processing this directive]