• [^] # Re: Perl

    Posté par . En réponse à la dépêche Sortie de GNU Awk 4.1.0. Évalué à 4.

    Pour ma part (et pour les unilignes), j’utilise rarement l’auto-découpage, souvent les expressions régulières (et ce n’est pas un hasard si celles de Perl ont été copiées par d’autres langages), de temps en temps un module, pas forcément un parcours de fichier (ou de l’entrée standard).

    On a pas les même cas d'utilisation, quand j'utilise awk 90% des fois je découpe mes champs (des fois plus d'une fois en changeant le record separator et le field separator) et il s'agit de manipuler des flux de données texte qu'ils viennent d'un fichier ou d'ailleurs.

    Et il y a l’avantage que quand j’ai a faire un script un peu conséquent, je le fais avec Perl aussi. Toujours un seul outil, avec une seule syntaxe (à quelques détails près : pour une uniligne je ne déclare pas les variables, alors que pour un script j’utilise le mode strict).

    Quasiment dès qu'il s'agit d'un script enregistré dans un fichier, je passe à autre chose qu'awk ou sed, sauf pour certains cas commencé avec awk et où il reste agréable à utiliser, ici je regarde le nombre de connexion simultanées sur un serveur ssh :

    #!/usr/bin/awk -f
    BEGIN {
     count=0;
    }
    /session opened/ {
     count++;
     active[3ドル]=1;
     print 1ドル","length(active)","count;
    }
    /session closed/ {
     delete active[3ドル];
    }
    
    

    Je ne me suis même pas posée la question de le faire en autre chose (je m'amuserais à coder ça en perl à l'occasion).

    Mon problème quand je script (avec un vrai fichier), c'est que je suis toujours partagé entre du zsh (ou bash éventuellement) et du perl. Ce qui me permet de discriminer les deux c'est ce que j'ai à faire, si j'appelle trop de commande externes (git, mvn ou autre) alors ce seras du shell, si je fais des manipulations un peu trop évoluée pour du shell ce seras du perl (avec use strict; user warnings; et user 5.010; systématiquement).

    Globalement je suis très loin de m'y connaître en perl et j'avoue me sentir un peu bloqué par cpan, je ne sais pas comment distribuer un script simplement qui a besoin d'un module cpan sans devoir faire l'installation du dis module de partout (sachant que même lorsque l'on vire les tests ça prend du temps).

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)