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 :

Que pensez vous de mon script perl


Sujet :

Langage Perl

  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut Que pensez vous de mon script perl
    Bonjour,
    bon ce script doit recupérer des données de quotas disque puis les transformer en varible . ensuite une connexion a distance sera etablie avec le module dbd::mysql et une requete d'insertion sera crée pour nourrir la base ; voici mon script :

    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
    #!/usr/bin/perl -w
    use strict;
    use DBI;
    use CGI;
     
    my $cgi = new CGI;
    my $recup = ` sed -e '1,/-\+/d;/^$/,$d' repquota -v/chemin` 
    my ($user1,$used1,$soft1,$hard1,$grace1,$used2,$soft2,$hard2,$grace2);
     
    print "Content-type: text/html\n\n";
     
    #Connection à la base de données mysql avec le module dbd::mysql (conncetion à distance)
    $dbh = DBI->connect("DBI:mysql:database=$db;host=$host",
                          $user, $password, {RaiseError => 1});
     
    #Requete sur la base de donnée 
    my $query = sprintf("INSERT INTO foo VALUES (%d, %s)",
                          $number, $dbh->quote("name"));
      $dbh->do($query);
     
    while ($ligne = $recup){
    # récupération des éléments
     ($user1,$used1,$soft1,$hard1,$grace1,$used2,$soft2,$hard2,$grace2) = split /;/,$ligne;
    # et on insere dans la base
      $db->do("insert into client values ('$user1','$used1','$soft1','$hard1','$grace1','$used2','$soft2','$hard2','$grace2')"
     
    );
              or die "pb de requete : $DBI::errstr";

  2. #2
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut
    personne ne peut m'aider

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    T'aider à quoi ?

    Le sujet de ton topic, c'est : qu'est-ce que vous pensez de mon script Perl ?

    Dans ton message initial, rien ne laisse présager que le-dit script aurait le moindre problème.

    Pourquoi devrait-on t'aider ? Et surtout, en quoi ???

  4. #4
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut
    Mon script ne marche pas et je vous demande si quelqu'un pourrait m'aider a resoudre mon probleme

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    C'est dommage : j'ai bêtement oublié ma boule de cristal ce matin à la maison et du coup, je n'ai aucune idée de la nature de ton problème.


  6. #6
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut
    Tu es du genre ironique ou je ne suis pas dans un forum d'entraide

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Citation Envoyé par specimen35 Voir le message
    Tu es du genre ironique ou je ne suis pas dans un forum d'entraide
    Une chose est sûre : tu n'es pas dans un forum de devins.

    Et une autre chose est sûre : si tu n'es pas capable de nous dire exactement ce qui cloche dans ton script, personne ne vas trouver la solution à ta place.

    Quand on a un problème, encore faut-il être capable de l'expliquer...

    PS : pour l'instant, on en sait autant sur ton problème que si tu te pointais chez un garagiste en lui demandant comment il trouve ta voiture, sachant qu'en réalité ta voiture a un problème de bougies défectueuses mais ça, c'est au garagiste de le savoir rien qu'en te voyant.

  8. #8
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 58
    Par défaut
    Bonjour,

    Essaye déjà en mettant un ; à la fin de la ligne 7.

  9. #9
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut
    Bon on va structurer ce que j'ai vue :

    1) il manque un ; à la fin de la ligne 7 : d'accor ou pas d'accord

    2) Utiliser Sed est il bon d'apres vous car je ne suis pas sûr de ce que cela filtre.
    avec sed voici le principe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     sed -e '1,/-\+/d;/^$/,$d' rep //rep = fichier
     
    root -- 157696 0 0 12 0 0
    uucp -- 40 0 0 76 0 0
    fradin -- 2304352 2500000 2550000 12465 50000 55000
    je ve recupérer les données que je vien de faire avec sed puis les mettre en variable soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my ($user1,$used1,$soft1,$hard1,$grace1,$used2,$soft2,$hard2,$grace2);
    d'accord du code ou pas d'accord

    3) Pour moi le programme boucle indéfiniement, vu que ni $recup, ni $ligne ne sont modifiés dans la boucle. D'ailleurs, si je comprend bien le code, il serait même plus judicieux de "parser" le résultat du "repquota" dans la boucle. Mais comment ces une de mes grande question



    d'autre suggestion sur mon code je suis prenneur merci

  10. #10
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Pour le point 2) (sed), si le résultat dans ta console ressemble à ce que tu nous as mis en exemple (plusieurs lignes retournées par sed), ta variable $recup récupère donc le résultat avec plusieurs lignes.

    Peut être un tableau @recup serait plus judicieux ? Ou alors, réorganiser le contenu de la variable pour qu'elle ne contienne plus qu'une ligne et non plusieurs ?

    Enfin, le split utilisé sur $recup éclate les données en fonction du séparateur ;

    Je ne vois le séparateur nulle part dans ce que te retourne la commande sed.

  11. #11
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut
    Si tu a retrouvé ta boule de cristal pourrait tu m'indiquer dans mon code comment rajouté mon split

  12. #12
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Citation Envoyé par specimen35 Voir le message
    Si tu a retrouvé ta boule de cristal pourrait tu m'indiquer dans mon code comment rajouté mon split
    Ce n'est pas le fait d'avoir retrouvé ma boule de cristal, mais plus le fait d'avoir un interlocuteur qui explique réellement son problème qui fait que ça avance

    Voilà ton bout de code remanié pour le problème 2)

    J'ai mis en commentaire les lignes d'origine

    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
    #!/usr/bin/perl -w
    use strict;
    use DBI;
    use CGI;
     
    my $cgi = new CGI;
    #my $recup = ` sed -e '1,/-\+/d;/^$/,$d' repquota -v/chemin` 
    my @recup = ` sed -e '1,/-\+/d;/^$/,$d' repquota -v/chemin`;
    chomp(@recup);
     
    my ($user1,$used1,$soft1,$hard1,$grace1,$used2,$soft2,$hard2,$grace2);
     
    print "Content-type: text/html\n\n";
     
    #Connection à la base de données mysql avec le module dbd::mysql (conncetion à distance)
    $dbh = DBI->connect("DBI:mysql:database=$db;host=$host",
                          $user, $password, {RaiseError => 1});
     
    #Requete sur la base de donnée 
    my $query = sprintf("INSERT INTO foo VALUES (%d, %s)",
                          $number, $dbh->quote("name"));
      $dbh->do($query);
     
    #while ($ligne = $recup){
    foreach($ligne(@recup)) {
    # récupération des éléments
    # ($user1,$used1,$soft1,$hard1,$grace1,$used2,$soft2,$hard2,$grace2) = split /;/,$ligne;
     ($user1,$used1,$soft1,$hard1,$grace1,$used2,$soft2,$hard2,$grace2) = split / +/,$ligne;
    # et on insere dans la base
      $db->do("insert into client values ('$user1','$used1','$soft1','$hard1','$grace1','$used2','$soft2','$hard2','$grace2')"
     
    );
              or die "pb de requete : $DBI::errstr";

  13. #13
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut
    Ba est tu de la regien bretonne ? si non dommage je t'aurais payé un apero a moin que tu ve venir en bretagne

    Ba grand merci a toi

    Maintenant si j'ai bien compris mon code devrait bien tourner ?

    je le test cette apres midi

  14. #14
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut
    personnne ?

  15. #15
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Citation Envoyé par specimen35 Voir le message
    personnne ?
    Heu, personne pour quoi ?

  16. #16
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Maintenant si j'ai bien compris mon code devrait bien tourner ?
    Pour la question du dessus

  17. #17
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Citation Envoyé par specimen35 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Maintenant si j'ai bien compris mon code devrait bien tourner ?
    Pour la question du dessus
    Qui pourrait mieux répondre que toi à ce genre de question ???


  18. #18
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Par défaut
    Je te posait la question pour savoir si ce que tu me proposait était ok pour mon script et te semblai bon

  19. #19
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Ok, on est en plein dans un dialogue de sourd.

    Bonne continuation, teste bien ton script et reviens voir ce forum si tu as un soucis.

    a+

Discussions similaires

  1. que pensez vous de mon site http://www.tout57.fr
    Par alain57 dans le forum Mon site
    Réponses: 4
    Dernier message: 21/01/2007, 12h47
  2. [Avis] Que pensez-vous de mon C.V.
    Par skynet dans le forum CV
    Réponses: 22
    Dernier message: 30/09/2006, 18h49
  3. Réponses: 11
    Dernier message: 09/09/2006, 15h54
  4. [SGBD/MLD]Que pensez vous de mon MLD?
    Par Bils dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 29/03/2006, 16h50
  5. que pensez vous de mon code source ecrit en c++(je debute)
    Par superspike23 dans le forum Débuter
    Réponses: 6
    Dernier message: 06/10/2005, 18h26

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