[Kiev-pm] Ест ли готовые модули для записи чисел словами на украинском языке?
Sergey Leschenko
sergle.ua на gmail.com
Чт Янв 26 15:02:43 PST 2012
Есть фрагмент, работающий с 2004м года :) Однобуквенные переменные...
====
my @decada = qw(нуль одна двi три чотири п'ять шiсть сiм
вiсiм дев'ять десять одинадцять дванадцять тринадцять чотирнадцять
п'ятнадцять шiстнадцять сiмнадцять вiсiмнадцять дев'ятнадцять
двадцять);
my @hundred = qw(нуль десять двадцять тридцять сорок п'ятдесят
шiстдесят сiмдесят вiсiмдесят дев'яносто);
my @thousand = qw(нуль сто двiстi триста чотириста п'ятьсот шiстсот
сiмсот вiсiмсот дев'ятьсот);
sub token {
my ($num) = @_;
return $decada[$num] if $num <= 20;
if ($num < 100) {
my $a = int($num/10);
my $b = $num %10;
return $hundred[$a].($b >0 ?' '.$decada[$b]:'');
}
elsif ($num <= 999) {
my $a = int($num/100);
my $b = $num % 100;
return $thousand[$a].($b >0 ? ' '.token($b):'');
}
else {
my $t = int($num/1000);
my $r = int($num) % 1000;
my $d = $t % 10;
my $l= token($t);
SWITCH: {
$d == 1 && do { $l.=' тисяча'; last SWITCH; };
$d < 5 && $d > 0 && do { $l.=' тисячi'; last SWITCH; };
$l.=' тисяч';
last SWITCH;
};
if ($r) {
$l.=' '.token($r);
}
return $l;
}
return '';
}
====
--
Sergey
Подробная информация о списке рассылки Kiev-pm