in reply to Re^3: Win32/Linux portability
in thread Win32/Linux portability

It's been a year, but I still don't get that abbreviated syntax. For example, today I found out that I can easily split strings at each point using
@foo=split(/\./,$bar);
But to split at whitespace I can use
@foo=split(" ",$bar);
Why is that and what does it mean? I really don't get it, why doesn't
@foo=split(".",$bar);
work?

Replies are listed 'Best First'.
Re^5: Win32/Linux portability
by jdporter (Paladin) on Oct 01, 2012 at 19:54 UTC

    Please read the documentation for split. Twice. Then if you still have trouble, come back and ask.

      I read it more than twice, before. It says "However, this special treatment can be avoided by specifying the pattern / / instead of the string " " , thereby allowing only a single space character to be a separator." To me that means that for one or more ".", "." should work as well, or is there something special about a "." compared to a " "?
        or is there something special about a "." compared to a " "

        No. The latter is special, the former is not.

        When a single space is used as the first argument to split, it is treated specially, and is substituted for by a regex that is (approximately) equivalent to /\s+/.

        This is a convenience token for a common case and (approximately) acts like a similar construct in another language.

        There is no such special case for '.'.


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.

        RIP Neil Armstrong

        To me that means that ...

        No. Don't extrapolate from what the doc says. It says a special case is "when the PATTERN is either omitted or a literal string composed of a single space character (such as ' ' or "\x20")"

        '.' is not a space character.