Coy
view release on metacpan or search on metacpan
lib/Lingua/EN/Hyphenate.pm view on Meta::CPAN
isV(-1) && is_C(0) && syl(2) && next;
isC(0) && syl(1) && next;
isV(0) && syl(1) && next;
}
return @syls;
}
my %user_def_syl = ();
my %user_def_hyph = ();
sub def_syl($)
{
my $word = $_[0];
$word =~ tr/~//d;
$user_def_syl{$word} = [split /\~/, $_[0]];
}
sub def_hyph($)
{
my $word = $_[0];
$word =~ tr/~//d;
$user_def_hyph{$word} = [split /\~/, $_[0]];
}
sub syllables($) # ($word)
{
return ($_[0]) unless $_[0] =~ /[A-Za-z]/;
my $word = $_[0];
$word =~ s/\A([^a-zA-Z]+)//;
my $leader = $1||'';
$word =~ s/([^a-zA-Z]+)\Z//;
my $trailer = $1||'';
my @syls = @{$user_def_syl{$word}||[]};
unless (@syls)
{
lib/Lingua/EN/Hyphenate.pm view on Meta::CPAN
else { push @syls, partition(abstract($part[$p])) }
}
}
$syls[0] = $leader . $syls[0];
$syls[$#syls] .= $trailer;
return @syls if wantarray;
return join '~', @syls;
}
sub hyphenate($$;$) # ($word, $width; $hyphen)
{
my $word = shift;
my @syls = @{$user_def_hyph{$word}||[]};
@syls = syllables($word) unless @syls;
my ($width, $hyphen) = (@_,'-');
my $hlen = length $hyphen;
my $first = '';
while (@syls)
{
if ($#syls) { last if length($first) + length($syls[0]) + $hlen > $width }
( run in 0.248 second using v1.01-cache-2.11-cpan-1f129e94a17 )