split / pattern /, string , [ limit ]
Scans a
string
for delimiters that match
pattern
, and splits the string into a list of substrings, returning the resulting list value in list context, or the count of substrings in scalar context. The delimiters are determined by repeated pattern matching, using the regular expression given in
pattern
, so the delimiters may be of any size, and need not be the same string on every match. If the
pattern
doesn't match at all,
split
returns the original string as a single substring. If it matches once, you get two substrings, and so on.
If
limit
is specified and is not negative, the function splits into no more than that many fields. If
limit
is negative, it is treated as if an arbitrarily large
limit
has been specified. If
limit
is omitted, trailing null fields are stripped from the result (which potential users of
pop
would do well to remember). If
string
is omitted, the function splits the
$_
string. If
pattern
is also omitted, the function splits on whitespace,
/\s+/
, after skipping any leading whitespace.
If the pattern contains parentheses, then the substring matched by each pair of parentheses is included in the resulting list, interspersed with the fields that are ordinarily returned. Here's a simple case:
that produces the list value:split /([-,])/, "1-10,20";
(1, '-', 10, ',', 20)