in reply to Re^2: Problem: how to split long words
in thread Problem: how to split long words

Here is non-regexp solution. It validates input in addition to the main task.

sub splitlong { my $text = shift; my @result; my ($cnt, $inside) = (0, 0); for (split //, $text) { ($inside = 0), next if $inside and $_ eq ']'; $inside = 1 if !$inside and $_ eq '['; next if $inside; $cnt = /\s/s ? 0 : $cnt + 1; ($cnt = 0), push @result, '-' if $cnt > 3; } continue { push @result, $_; } warn "invalid input: $text" if $inside; return join '', @result; } my $text = 'ju[color=1]s[/color]t a sam[color=2]p[/color]le'; print splitlong($text);

Replies are listed 'Best First'.
Re^4: Problem: how to split long words
by nikos (Scribe) on Sep 01, 2004 at 14:09 UTC