in reply to Re: Re: Re: Re: split/map weirdness: empty strings vs undef
in thread split/map weirdness: empty strings vs undef

print "($_)\n" for split(/\|/, "2|3|||||"); __END__ (2) (3) print "($_)\n" for split('|', "2|3|||||"); __END__ (2) (|) (3) (|) (|) (|) (|) (|) C:\> perl -v This is perl, v5.6.1 built for MSWin32-x86-multi-thread (with 1 registered patch, see perl -V for more detail) Copyright 1987-2001, Larry Wall Binary build 631 provided by ActiveState Tool Corp. http://www.ActiveS +tate.com Built 17:16:22 Jan 2 2002

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Re: split/map weirdness: empty strings vs undef
by sauoq (Abbot) on Oct 04, 2002 at 21:56 UTC

    Yes. That's exactly my point. My examples showed that /|/ and '|' were the same. For completeness:

    $string = "2|3||"; print "Backwhacked bar in pattern: "; print "($_)" for split /\|/, $string; print "\n"; print "Backwhacked bar in quotes: "; print "($_)" for split '\|', $string; print "\n"; print "Just a bar in pattern: "; print "($_)" for split /|/, $string; print "\n"; print "Just a bar in quotes: "; print "($_)" for split '|', $string; print "\n"; __END__ Backwhacked bar in pattern: (2)(3) Backwhacked bar in quotes: (2)(3) Just a bar in pattern: (2)(|)(3)(|)(|) Just a bar in quotes: (2)(|)(3)(|)(|)

    The presence of bars in the output of both splitting on '|' and on /|/ is because those are both really splitting on the null pattern. The quoted bar is not preserving fields.

    -sauoq
    "My two cents aren't worth a dime.";