Most of your questions seem to stem from an expectation that split works by finding a string literal you pass it. While this expectation is correct for cases like split 'x', 'axbxc';, split actually works based upon regular expressions. Regular expressions use several metacharacters, one of which is . - it a wildcard. You may gain some illumination by testing your expressions in code similar to:

print join "_|_", split /./, $foo;

To answer more on point for your questions:

  1. As previously stated, . is a regular expression metacharacter. To split on literal periods, use the regular expression /\./ or use the \Q \E combo (e.g. split /\Q.\E/, $foo;) to handle your escaping for you - see Quote and Quote like Operators.
  2. Double quotes are interpolated by Perl and single quotes are not - again, see Quote and Quote like Operators. In your case, double quotes apply escaping to backslashed characters. This means "\\." is equivalent to '\.' and "\." is equivalent to '.'. In particular, backslash is an ordinary character in single quotes unless followed by another backslash or by a single quote.
  3. In the last example, the regular expression engine is looking for a literal backslash followed by any character.

If any of this is unclear, I would be happy to expound further.


In reply to Re: double quote vs single quote oddities. I need enlightenment by kennethk
in thread double quote vs single quote oddities. I need enlightenment by lyapunov

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.