sub wrap {
# intelligent wrap
my ($l, $msg) = @_; # are passed parameters, length and original text.
my ($temp, @newmsg, $l2); # working vars.
return unless (defined $msg); # return if original $msg empty
$temp = $msg;
while (length($temp) > $l) # while length of working copy of $msg is
longer than desired line length
{
$l2 = $l;
$l2-- while (substr($temp,$l2-1,1) ne " ");
push @newmsg, substr($temp,0,$l2);
$temp = substr($temp,$l2);
}
push @newmsg, $temp;
return join("\r\n", @newmsg);
}