Good answer, one error though, m// is not an empty pattern, it is the last pattern to successfully match, split gets special dispensation so that split m//, $stuff does split on an empty pattern.
From the split reference:
As a special case for split, using the empty pattern // specifically matches only the null string, and is not be confused with the regular use of // to mean "the last successful pattern match". So, for split, the following:
produces the output 'h:i: :t:h:e:r:e'.
print join(':', split(//, 'hi there'));