http://www.perlmonks.org?node_id=223593


in reply to Re: Re: packing/unpacking/split/join confusion
in thread packing/unpacking/split/join confusion

The first argument to split is a regex that describes the delimiters in the second argument. By specifying a space, you are telling split to break the string apart wherever it sees a space. So, split ' ',"A B C D" returns ('A','B','C','D'). If instead of space there were commas in your string, you could split ',',"A,B,C,D" instead. This would produce the same result.

--- print map { my ($m)=1<<hex($_)&11?' ':''; $m.=substr('AHJPacehklnorstu',hex($_),1) } split //,'2fde0abe76c36c914586c';

Replies are listed 'Best First'.
Re: Re: Re: Re: packing/unpacking/split/join confusion
by sauoq (Abbot) on Jan 12, 2003 at 00:07 UTC
    By specifying a space, you are telling split to break the string apart wherever it sees a space.

    Almost. A literal space is a special case. It splits on whitespace like /\s+/ but it doesn't return a null field when there is leading whitespace. So, it is just like split with no arguments but it allows you to specify the variable instead of using $_.

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