Use as follows:# fmt("text",width); #--------------------------------------------------------------------- +- # Wraps long lines to manageable size. If a word is too long, the line # length is temporarily raised until the word does fit. sub fmt { my $text=shift; # Input text my $width=shift; # Desired width $width=70 if(!$width); # Default to 70 if omitted my $rc=""; # Return value my $cll=$width; # Current line length my $cp=0; # Current position my $i; # Index to last space. my $lot=length($text); # Length of $text. $text=~s/\s+/ /g; # Reduce all series of whitespace to o +ne while($cp+$cll < $lot) { print STDERR "cp=$cp cll=$cll\n"; while((($i=rindex($text," ",$cp+$cll))<=$cp) && $cp+$cll < $lot) { $cll+=$width; } if($i>$cp) { $rc=$rc.substr($text,$cp,$i-$cp)."\n"; $cp=$i+1; $cll=$width; } } $rc=$rc.substr($text,$cp)."\n"; return $rc; }
print fmt("Type in your paragraph of text here...",40);
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Tiny little paragraph wrapper
by rnahi (Curate) on Mar 10, 2005 at 10:02 UTC | |
|
Re: Tiny little paragraph wrapper
by blahblahblah (Priest) on Mar 12, 2005 at 13:24 UTC | |
by GrandFather (Saint) on May 31, 2005 at 03:37 UTC |