in reply to Splitting every 3 digits?
my @nums; push @nums, substr($a, 0, 3, "") while length($a);
Note that this does not check if you are only extracting digits, but I assume that you don't expect non-digits in your case (update: if you do, you can use the regex below with \d, or check to make sure the string has no non-digits before hand) You can also use a regular expresion with the /g modifier (to make it, in list context, return all the captured text (which will be everything the regex matches if there is no explict capturing parenthesis) for all matches found within the string) to do this task:
my @nums = $a =~ /(...)/g
(Note that split will return things in grouping parenthesis in regex provided to it in addition to the things between the what the regex matches, which will explain what your code puts in @nums.)
(update: fixed phrasing to talk about not expecting non-digits, rather then the... horror I had before.)
|
|---|