[Perl] nombre en mots

Kai Carver kaicarver at gmail.com
Mar 23 Fév 07:31:31 CET 2016


J'adore ce one-liner de Sébastien.

Il m'inspire ce micro-service $A++:

$ *plackup -e 'sub { my $e = shift; my $A = $e->{QUERY_STRING}; return [
"200", [], [ $A + 1 ]] }' & curl http://127.0.0.1:5000?1
<http://127.0.0.1:5000?1>*
[2] 11816
HTTP::Server::PSGI: Accepting connections at http://0:5000/
127.0.0.1 - - [23/Feb/2016:13:56:17 +0800] "GET /?1 HTTP/1.1" 200 2 "-"
"curl/7.47.1"
2

et sa version French Tech:

$ *plackup -MLingua::FR::Numbers -e 'sub { my $e = shift; my $A =
$e->{QUERY_STRING}; return [ "200", [], [
Lingua::FR::Numbers::number_to_fr($A + 1) ]] }' & curl
http://127.0.0.1:5000?888821888879 <http://127.0.0.1:5000?888821888879>*
[2] 12812
HTTP::Server::PSGI: Accepting connections at http://0:5000/
127.0.0.1 - - [23/Feb/2016:14:12:39 +0800] "GET /?888821888879 HTTP/1.1"
200 127 "-" "curl/7.47.1"
huit cent quatre-vingt-huit milliards huit cent vingt et un millions huit
cent quatre-vingt-huit mille huit cent quatre-vingts

(merci à Briac pour Lingua::FR::Numbers. Il resterait à écrire
fr_to_number pour
éviter complètement les chiffres...)

Il serait grand temps de faire entrer $A++ dans le 21ème siècle!
http://paris.mongueurs.net/aplusplus.html

k

On Tue, Feb 23, 2016 at 5:13 AM, Thebert Sebastien <sebthebert at gmail.com>
wrote:

> Une version plus light et sans réinventer la roue... :)
>
> plackup -MLingua::FR::Numbers -e 'sub { my $e = shift; my $nb =
> $e->{QUERY_STRING}; return [ "200", [], [
> Lingua::FR::Numbers::number_to_fr($nb) . "\n" ]] }' &
>
>
> curl http://127.0.0.1:5000?123456789
> cent vingt-trois millions quatre cent cinquante-six mille sept cent
> quatre-vingt-neuf
>
>
> On Mon, Feb 22, 2016 at 9:56 PM Alain BarBason <alain at barbason.be> wrote:
>
>> Le 22/02/16 20:43, Dominix a écrit :
>> > bon, chacun mettra a son goût, j'ai ajusté les vingt _et_ un et les 's'
>> > des cents.
>> >
>> > pour passer des paramètres via URL, est ce que le plus simple c'est une
>> > app/dancer ? plack ? mojolicious ?
>> > merci de vos avis (c'est ma question de départ au final) ... bon je vais
>> > voir si hollande arrive, c'est pas souvent qu'il passe dans ma rue.
>> >
>>
>> un peu bourrin
>>
>> use v5.018;
>> use strict;
>> use warnings;
>> use CGI qw/:standard/;
>> use CGI::Carp qw(fatalsToBrowser);
>>
>> sub nombre_en_mots ($);
>>
>> # main body of script:
>> {
>>
>> say header(-type => "text/html", -charset => "utf-8");
>> say  "parametre : ",param(-name => "number");
>>      if (!param(-name => "number") )
>>      {
>>         die "Error: This program takes exactly one argument, which must
>> be\n",
>>             "a non-negative integer not exceeding 10^66-1.\n",
>>             "$!\n";
>>      }
>>      my $number = param(-name => "number");
>>      say nombre_en_mots($number);
>>      exit 0;
>> }
>> ...
>> que tu mets dans /usr/lib/cgi-bin
>>
>> Et on l’appelle avec
>>
>> http://localhost/cgi-bin/nombre_en_mots?number=21
>>
>> reste a faire un page html avec un champ qui appelle le script...
>> _______________________________________________
>> Perl mailing list
>> Perl at mongueurs.net
>> http://listes.mongueurs.net/mailman/listinfo/perl
>>
>
> _______________________________________________
> Perl mailing list
> Perl at mongueurs.net
> http://listes.mongueurs.net/mailman/listinfo/perl
>
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://listes.mongueurs.net/mailman/private/perl/attachments/20160223/d1559605/attachment.html>


Plus d'informations sur la liste de diffusion Perl