The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w -C

use Text::RewriteRules;

RULES/x num2words
(\d+) (000000) \b ==>$1 milhão!!            $1 == 1

(\d+) (000000) \b ==>$1 milhões

(\d+) (000) (\d{3}) ==>$1 milhão e $3!!     $1 == 1

(\d+) (\d{3}) (000) ==>$1 milhão e $2 mil!! $1 == 1

(\d+) (\d{6}) ==>$1 milhão, $2!!           $1 == 1

(\d+) (000) (\d{3}) ==>$1 milhões e $3

(\d+) (\d{3}) (000) ==>$1 milhões e $2 mil

(\d+) (\d{6}) ==>$1 milhões, $2


(\d+) (000) \b ==>mil!!                     $1 == 1

(\d+)(000)\b ==>$1 mil

(\d+)0(\d{2}) ==>mil e $2!!               $1 == 1

(\d+)(\d00) ==>mil e $2!!                 $1 == 1

(\d+)(\d{3}) ==>mil $2!!                  $1 == 1

(\d+)0(\d{2}) ==>$1 mil e $2

(\d+)(\d00) ==>$1 mil e $2

(\d+)(\d{3})
==>$1 mil, $2


100
==>cem 

1(\d\d)
==>cento e $1 

0(\d\d)
==>$1

200
==>duzentos 

300
==>trezentos 

400
==>quatrocentos 

500
==>quinhentos 

600
==>seiscentos 

700
==>setecentos 

800
==>oitocentos 

900
==>novecentos 

(\d)(\d\d)
==>${1}00 e $2


10 ==>dez 

11 ==>onze 

12 ==>doze 

13 ==>treze 

14 ==>catorze 

15 ==>quinze 

16 ==>dezasseis 

17 ==>dezassete 

18 ==>dezoito 

19 ==>dezanove 

20 ==>vinte 

30 ==>trinta 

40
==>quarenta 

50
==>cinquenta 

60
==>sessenta 

70
==>setenta 

80
==>oitenta 

90
==>noventa 

0(\d)
==>$1

(\d)(\d)
==>${1}0 e $2


1
==>um 

2
==>dois 

3
==>três 

4
==>quatro 

5
==>cinco 

6
==>seis 

7
==>sete 

8
==>oito 

9
==>nove 

0$
==>zero 

0
==> 

"  "
==> 

" ,"
==>,

ENDRULES

for (@ARGV) {
  print num2words($_),"\n";
}