#!/usr/bin/perl $v = '[aeiouáéíóúàãõâêôäëïöü]'; $f = '[çdfgjkqtv]'; $ac = '[áéíúãõâêô]'; while(<>){print divide($_)} RULES divide ($v|[bclnprsx])($f)==>$1|$2 ($v)([bclmnprsx]$v)==>$1|$2 ([lmnrsx])([bclmnprs]$v)==>$1|$2 ($v|[lmnrsx])([bcp][lr]$v)==>$1|$2 ($v)([nlc]h)==>$1|$2 ([au])(i[ru])==>$1|$2 ([io])([ao])==>$1|$2 ([ie])e==>$1|e ($v)($ac)==>$1|$2 __END__ =head1 DESCRIPTION Makes division in sylabs according to the portuguese language rules. =head1 AUTHOR J.Joao Almeida, jj@di.uminho.pt =cut