in reply to Splitting two digits

You could try:
$text="20"; $field[0] = substr($text, 0,1); $field[1] = substr($text, 1,2);

Notice that i use $field[0] instead of @field[0]. This is because you're only referring to a single element in the array, and not to the entire array.

Replies are listed 'Best First'.
Re^2: Splitting two digits
by Ionizor (Pilgrim) on Jan 08, 2003 at 18:04 UTC

    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.

      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