If you can't use
davorgs advice above, you can use this:
my $string = "This is a test string containing fifty-four characters";
# for example, we'll set limit at 25
my $limit = 25;
my @lines = ();
push @lines, $_ for ($string =~ /\s*(.{0,$limit}\b)gs);
# regex explanation
\s* - match any leading spaces
( - start match
. - match any character
{0,$limit} - up to $limit times
) - end match
\b - followed by a word boundary
# modifiers
g - global (match as many times as you can)
s - treat whole string as a single line.
hth
cLive ;-)