split is best used when you have a separator of some sort to split on. In this case there is no separator - you have a bunch of things packed together - so you'd probably be better off with unpack:
my @splat = unpack '(A4)*', $thing;
That is: unpack this string into (4-character substrings) as many as you can find. (If there can only be two such substrings, you can replace the '*' with '2' to specify that.) Note that this is just dealing with characters, it doesn't know anything about digits - if you need to locate the digits in the string first, you probably want a regular expression for that.
Once you have the right digits separated out, removing leading zeros is as simple as getting perl to treat it as a number. A couple of common idioms for doing that are:
$num = int($string); $num = $string + 0;
With map you can apply that transformation to the stream of strings on its way into the array:
my @splat = map $_ + 0, unpack '(A4)*', $thing;
Hope this helps,
Hugo
In reply to Re: Problem With Split
by hv
in thread Problem With Split
by debiandude
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |