http://www.perlmonks.org?node_id=1003814


in reply to Re: Word wrapping using a regex.
in thread Word wrapping using a regex.

I think to make this work we need to add another line at the end to tell it what to do with the last of the string that is less than $wrap.
sub wrap { my ($s, $wrap) = @_; my (@lines, $line); while (length $s > $wrap) { ### Take one extra character so we can see if ### we're wrapping inside a word or not $line = substr($s, 0, $wrap+1); $line =~ s/\s+(\S*)$//; push @lines, $line; ### Add any word fragments back on $s = $1 . substr($s, $wrap); $s =~ s/^\s+//; } push @lines, $s; ## Adds the the last of the $s string to @lines return join "\n", @lines; }