in reply to Re: Splitting two digits
in thread Splitting two digits

I knew there was a better way. Here's a general function for splitting the first n characters of a string into an array, trapping to make sure they are digits:

my @field; # Set to desired number of chars or switch for next line # if you want the whole string. my $numchars = 2; # my $numchars = length($text); for(my $i = 0; $i < $numchars; $i++) { my $curchar = substr($text, $i, 1); if ($curchar =~ /\d/) { push @field, $curchar; } }

Also, substr($text, 1,2); should be substr($text, 1,1); in the above.

--
Grant me the wisdom to shut my mouth when I don't know what I'm talking about.

Replies are listed 'Best First'.
Re: Re: Re: Splitting two digits
by ihb (Deacon) on Jan 09, 2003 at 00:00 UTC
    Why not combine the various answers in this thread? :)

    my @digits = grep /\d/, split //, substr($str, 0, $len);

    However, I'd probably do

    my @digits = substr($str, 0, $len) =~ /\d/g;

    ihb