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';
| [reply] [Watch: Dir/Any] [d/l] [select] |
-sauoq
"My two cents aren't worth a dime.";
| [reply] [Watch: Dir/Any] [d/l] |
I think what is confusing you is "Where are the spaces coming from ?"
# If this is an array
@a = ("A","B","C");
# then
print "@a";
# result =A B C ie. all spaced out
#
# because as the Camel book says
# Array variables are interpolated into double
# quoted strings by joining all the elements
# of the array with the delimiter specified
# in the $" variable (which is space by default)
#
#This however
print join ('',@a);
# result =ABC
poj | [reply] [Watch: Dir/Any] [d/l] |