IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

style de script


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut style de script
    Bonsoir à tous.

    Je n'ai pas touché à perl depuis presque deux mois — je sais, ce n'est pas bien, mais j'en ai profité pour jeter un oeil à ruby et à vrai dire cela vaut le détour... — et j'ai l'impression que ce que j'écris n'est pas très bien tourné, que le style est tout bizarre.

    Pouvez-vous me dire ce que vous en pensez ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/usr/bin/perl -w
    use strict;
    my %ips;
    while (<>) {
        $ips{$1}++ if (/^(\d+\.\d+\.\d+\.\d+)/);
    }
    map { 
        print $ips{$_} . "\t" . $_;    
        my $result = qx{ whois -B -h whois.ripe.net $_ };
        my ($country, $descr) = ('', '');
        if ($result =~ /country:\s+(\w+)/) {
            $country = $1;
        }
        if ($result =~ /descr:\s+(.+?)\n/) {
            $descr = $1 ;
        }
        print "\t" . lc($country);
        print "  " . lc($descr) . "\n"; 
    } sort { $ips{$b} <=> $ips{$a} } keys %ips;
    Il s'agit d'un script qui parse un access.log de serveur apache et recrache les adresses ip par odre de plus grand accès avec infos sur la localisation et le provider.

    Merci d'avance.

  2. #2
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Déjà, je pense que ton script serait un poil plus clair si tu utilisais une boucle foreach au lieu de l'opérateur map. Sinon, quelques commentaires ne feraient pas de mal.

  3. #3
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    Merci Schmorgluck. En effet le map n'est pas très lisible. Au départ c'était juste un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    map { 
        print $ips{$_} . "\t" . $_ . "\n";    
    } sort { $ips{$b} <=> $ips{$a} } keys %ips;
    Ce sera plus lisible avec une variable en clair et un foreach.

Discussions similaires

  1. Recherche de script pour image style sncf
    Par mims1664 dans le forum Flash
    Réponses: 1
    Dernier message: 04/02/2009, 13h35
  2. Erreur de script changement de style
    Par lelectronique.com dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/03/2008, 11h01
  3. [AJAX] append : exécuter script et style
    Par Defkarz dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 18/01/2008, 17h21
  4. Recherche un script style "image du jour" ou "citation du jour"
    Par Invité dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 28/08/2006, 22h22
  5. [Scripts] Comment avoir les boutons style XP
    Par Didier69 dans le forum Général Dotnet
    Réponses: 26
    Dernier message: 18/05/2005, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo