On Mar 9, M z said:

>could someone please help me make this bit of code
>more efficient?  I am trying to break really long
>lines, say up to 600 characters into manageable sizes
>(78 or less characters) but I do not want to break
>cleanly at position 78.  If that is in the middle of a
>word, my program back steps to the first whitepace.

I'm sure this has been asked (and answered) recently.  However, it
probably didn't have a good subject in its headers.

  $string =~ s/(.{1,78})\s/$1\n/g;

That will match between 1 and 78 characters (but it tries to match the
most possible) and requires that a space be the next character matched; it
replaces the space with a newline.

If you want to make it more rigorous, I have some ideas.  Here's one that
stores said chunks in @parts:

  @parts = $string =~ /.{1,78}(?!\S)/g;

-- 
Jeff "japhy" Pinyan      [EMAIL PROTECTED]      http://www.pobox.com/~japhy/
RPI Acacia brother #734   http://www.perlmonks.org/   http://www.cpan.org/
** Look for "Regular Expressions in Perl" published by Manning, in 2002 **
<stu> what does y/// stand for?  <tenderpuss> why, yansliterate of course.
[  I'm looking for programming work.  If you like my work, let me know.  ]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to