Perl: the Markov chain saw PerlMonks

### Re^2: Understanding Split and Join

by ferreira (Chaplain)
 on Dec 30, 2006 at 19:34 UTC ( #592363=note: print w/replies, xml ) Need Help??

in reply to Re: Understanding Split and Join
in thread Understanding Split and Join

Both exceptions, the special treatment of // and /^/ by split, are documented in split. Both may deserve to be mentioned in the tutorial quickly for the profit of the unaware. The last remark by ysth about the non-equivalence of /^(?#)/ and /^ /x with // for split purposes is a subtle thing. More subtle if you compare to the fact that / /x, / # /x or even / (?#)/x have the same treatment as // when passed to this function. Looks like a case to be fixed either in the docs or in the code of the Perl interpreter itself (if not barred by compatibility issues).

Replies are listed 'Best First'.
Re^3: Understanding Split and Join
by ysth (Canon) on Dec 31, 2006 at 01:44 UTC
Looks like a case to be fixed either in the docs or in the code of the Perl interpreter itself
I'm not sure what you mean by "fixed"? split doesn't have the special logic for // that match and substitution do, but even those operations don't have special logic for / /x, / # /x or / (?#)/x.
I think I have misunderstood that behavior:
```\$ perl -e '@a = split //, 'abc'; print "@a"'
a b c

\$ perl -e '@a = split / /x, 'abc'; print "@a"'
a b c

\$ perl -e '@a = split / # /x, 'abc'; print "@a"'
a b c

\$ perl -e '@a = split / (?#) /x, 'abc'; print "@a"'
a b c

The logic of split does not need to be special for this to work. These are real empty patterns and split understand they are meant to split characters as they return empty delimiters. But you were saying that the same is not automatic for patterns equivalente to /^/. Sorry for the confusion I made.

Create A New User
Node Status?
node history
Node Type: note [id://592363]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2017-11-23 15:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
In order to be able to say "I know Perl", you must have:

Results (336 votes). Check out past polls.

Notices?