• [^] # Re: et en perl

    Posté par . En réponse au journal Esod mumixam !. Évalué à 4.

    sur un système utf-8 il peut être utile de faire l'une des action suivante

    • export PERL_UNICODE="" $ echo Hé Y a un caractère accentué | zorg.pl
    • utiliser le switch -CIO $ echo Hé Y a un caractère accentué | perl -C zorg.pl
    • ajouter use open qw(:std :utf8); au niveau des use ;) $ echo Hé Y a un caractère accentué | zorg.pl

    Voila, j'ajouterai qu'en cas de caractères spéciaux avant le premier mot, ils sont bouffés; je poste donc une version améliorée qui marche avec de la ponctuation avant :

    !/usr/bin/perl
    use strict;
    use open qw(:std :utf8);
    while( <STDIN>){
     while ( m/(\w*)(\W*)/g) {
     my ($mot, $sep ) = (1ドル, 2ドル);
     for( my $i = 0 ; $i <= (length $mot) ; $i++){
     if( substr( $mot,$i,1) =~ /[A-Z]/ ) {
     print uc( substr( $mot, -1-$i, 1 ));
     }
     else {
     print lc( substr( $mot, -1-$i, 1 )) ;
     }
     }
     print "${sep}";
     }
    }

    $> echo '!!! ya mêMe des accents en plein milieu !!!'| ./zorg.pl
    !!! ay emÊm sed stnecca ne nielp ueilim !!!
    $>

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent