Jerry Preston wrote:
> Hi!
> 
> I am trying to figure out a simple, Perl way to break down any sting
> similar to the following:
> 
> $s0 =
>
"01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
> 26,27,28,29";
> 
> Or in any numeric order.  The string cannot be longer than 55
> characters and end with ",".
> 
> Ex:
> 
> $s1 = "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,";
> $s2 = "22,23,24,25,26,27,28,29"
> 
> I know that I can use the following to start:
> 
>   if( length $s0 > 55 ) {
> 
>     $s1 = substr( $s0, 0, 54 );
>     $s2 = substr( $s0, 54, length $s0  );
> 
>   }

If I understand correctly, you want to break at the longest sequence ending
with a comma, but no longer than 55 chars per segment, right? How about
something like:

    while (length $s0) {
        ($s1, $s0) = $s0 =~ /(.{0,54}(?:,|$))(.*)/;
        print "$s1\n";
    }

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to