Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: Tutorial suggestion: split and join

by Not_a_Number (Parson)
on Aug 29, 2003 at 13:34 UTC ( #287644=note: print w/replies, xml ) Need Help??

in reply to Tutorial suggestion: split and join

1) This statement:

If you leave off the pattern, split assumes you want to split on /\s+/.

needs considerable qualification. You can't just 'leave off the pattern' except in one particular circumstance. Try this:

my $str = " foo bar baz "; my @spl = split $str; print "@spl";

It just doesn't work (at least in 5.6.1). You can only leave off the 'pattern' if you also leave off the 'target', ie if you are splitting on an implicit $_, eg:

while ( <DATA> ) { split; #do something interesting; }

2) This is plain wrong:

One special case is when you specify the string literal, " " (a quoted space), which does the same thing as specifying no delimiter at all (no argument).

There is nothing special about " " (see gmax's example above). You are confusing it with ' '.

3) One other minor point, I would suggest bringing the paragraph Preserving delimiters up to just below Where do delimiters go?, which IMHO would be a more logical ordering.



Update: See Abigail-II's post below

Replies are listed 'Best First'.
Re: Tutorial suggestion: split and join
by Abigail-II (Bishop) on Aug 29, 2003 at 14:11 UTC
    There is nothing special about " " (see gmax's example above). You are confusing it with ' '.

    I don't understand how gmax example shows it. Could you provide us with a single string on which splitting with " " produces a different result than splitting with ' '?

    It would be very, very strange if split produces different results, because the difference between " " and ' ' has disappeared long before split is called. After compile time, the difference between " " and ' ' is gone.



      I always thought that the 'magic' of ' ' was limited to single quotes. And a total misreading of this line:

      for ( " ", '\s', '\s+' ) {

      in gmax's code seemed to bear out my fallacy.

      Remark withdrawn, with apologies.

      :( dave

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://287644]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2016-10-28 02:56 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (374 votes). Check out past polls.