How about:
map s|\B|"|g, @ARGV;
$_ = shift | shift;
s|"||g;
s|/|­|g;
print "$_\n";
tilrman:~$ ./hyph.pl hypo-allergeen hy-po-al-ler-geen
hy­po-al­ler­geen
LP^>
On Thu, Sep 05, 2002 at 04:36:12PM +0200, Bart Lateur wrote:
> On Thu, 05 Sep 2002 15:04:30 +0200, Bart Lateur wrote:
>
> >The problem is this: given two versions of a word, one without, and one
> >with hyphenation, determine which hyphens are soft hyphens (optional
> >breakpoints), and which ones are hard hyphens? For example:
> >
> > hypo-allergeen hy-po-al-ler-geen
>
> My own attempt:
>
> @ARGV = qw(hypo-allergeen hy-po-al-ler-geen);
>
> my($word, $split) = @ARGV;
> $split =~ s/-|(\W)/$1 ? "\\$1" : '(-?)'/ge;
> $word =~ /^$split$/ or die "No match";
> for(my $i = @-; --$i > 0;) {
> next if $+[$i] > $-[$i];
> substr($word, $-[$i], 0) = '­';
> }
> print $word;
> -->
> hy­po-al­ler­geen
>
> --
> Bart.