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 :

[debutant] optimisation du code


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut [debutant] optimisation du code
    Bonjour à tous,

    comme c'est indiqué dans le sujet je suis débutant en perl, j'ai réalisé un petit script sans prétention et j'aimerai avoir votre avis quant a sont aspect (s'il est bien conçu et si je peux l'optimiser un peu, si oui comment ?) je compte réaliser un projet plus gros c'est pour cela que je voudrai savoir si ma pratique est bonne.

    merci et à bientôt

  2. #2
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Quel code?

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    Erf, exusez moi j'ai oublié de le mettre (LOL)

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    our $curdir = $ENV{PWD};
    our $cfgdir = "$curdir/config/";
    our $usrdir = "$curdir/users/";
    our $langdir = "$curdir/lang/";
    our %var = ();
    our %access = ();
     
    sub load_config
    {
    	$cfgfile = "$cfgdir/uworld.conf";
    	print "Lecture du fichier configuration ...\n";
    	open(FILE, $cfgfile) or die "Impossible de lire la configuration $!";
    	while(chomp($line=<FILE>))
    	{
    		if ($line =~/^uw_(.+?)=(.+?)$/)
    		{
    			$var{"$1"} = $2;
    		}
    	}
    	close(FILE);
     
    	$servip = $var{"ip"};
    	$servport = $var{"port"};
    	$servpass = $var{"pass"};
    	$servname = $var{"service"};
    	$servdesc = $var{"desc"};
    	$servnick = $var{"nick"};
    	$servident = $var{"ident"};
    	$servhost = $var{"host"};
    	$servrname = $var{"name"};
    	$servmodes = $var{"modes"};
    	$servchan = $var{"chan"};
    }
     
    sub load_access
    {
    	$usrfile = "$usrdir/users.list";
    	print "Lecture fichier utilisateurs ...\n";
    	open(FILE, $usrfile) or die "Impossible de lire la base de données utilisateurs $!";
    	while(chomp($line=<FILE>))
    	{
    		if ($line =~/^(.+?)\s(.+?)\s(.+?)\s(.+?)\s(.+?)$/)
    		{
    			$access{lc($1)} = "$2 $3 $4 $5";
    		}
    	}
    	close(FILE);
    }
     
    sub isbotuser
    {
    	my ($nick) = @_;
    	foreach my $tmp (keys %access)
    	{
    		(defined($access{lc($nick)})) ? return 1 : return 0;
    	}
    }
    tchuss

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Pourquoi our() plutôt que my() ?
    Tu utilises des variables sans les déclarer (tu n'utilises donc pas le pragma 'strict' ?).
    Cette ligne est dangereuse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(chomp($line=<FILE>))
    si tu tombes sur une ligne vide ou ne contenant que "0\n", on sortira de la boucle, il est préférable d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while(my $line=<FILE>) {
      chomp $line;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sub isbotuser
    {
    	my ($nick) = @_;
    	foreach my $tmp (keys %access)
    	{
    		(defined($access{lc($nick)})) ? return 1 : return 0;
    	}
    }
    A quoi sert ce foreach exactement ? On n'y utilise pas $tmp et on sort de la fonction à la première itération.

    Il y a sans doute d'autres choses à dire, lis la FAQ, et en particulier la section sur le style.

    --
    Jedaï

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    Salut jedai,

    J'utilise le our() pour pouvoir réutiliser mes variables dans un autre fichier, ensuite pour la fonction isbotuser c'est vrai que j'ai trés mal réflechi en effet ca ne me sert a rien d'effectuer un foreach alors que j'ai juste a vérifier si $access{$nick} existe bien et oui je n'utilise pas stricts (je sais c'est mal) donc il faut que je déclare toute les variables servip etc ... nul avant de leur ajouter une valeur ? j'ai beaucoup a apprendre donc merci pour ton aide je vais de ce pas (aprés un bon café) lire la faq.

    merci et à bientôt

Discussions similaires

  1. Optimisation de code T-SQL (DEBUTANT)
    Par sono_strass dans le forum Développement
    Réponses: 2
    Dernier message: 30/06/2011, 13h37
  2. optimisation de code (tres simple le code mais je debute)
    Par karlakir dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/04/2009, 16h43
  3. [debutant]Optimisation de code
    Par Madfrix dans le forum Langage
    Réponses: 12
    Dernier message: 20/02/2008, 11h24
  4. syntaxe et optimisation de codes
    Par elitol dans le forum Langage SQL
    Réponses: 18
    Dernier message: 12/08/2004, 11h54
  5. optimisation du code et var globales
    Par tigrou2405 dans le forum ASP
    Réponses: 2
    Dernier message: 23/01/2004, 10h59

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