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 :

placeholder et fonction


Sujet :

Langage Perl

  1. #1
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut placeholder et fonction
    Voici un sous-programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sub UPDATE_DB {
     
    	my ($acc, $start, $end) = @_;
     
    	my $sql = "UPDATE $Table SET 28S_start = '$start', 28S_end = '$end' WHERE accession = '$acc'";
    	print "$sql\n";
     
    	my $sth = $dbh->prepare($sql) or print "erreur de preparation SQL \$sql\n";
    	$sth->execute or die "Could not execute SQL statement ... maybe invalid?\n$sql\n";		
    	$sth->finish;	
     
    	($start, $end) = ();
    }
    Est-ce une bonne idée d'utiliser un placeholder dans ce cas là?
    vaut-il mieux passer $sth en argument à chaque appel de la fonction?
    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
     
    my $sql = <<"SQL2";
    UPDATE Samson_28S SET 28S_start = '?', 28S_end = '?' WHERE accession = '?'
    SQL2
    my $sth = $dbh->prepare($sql) or print "erreur de preparation SQL \$sql\n";
     
     
     
    foreach my $acc (@request){
     
     
    	...
     
    	UPDATE_DB($acc, $start, $end);
     
    	...
     
    }
     
     
     
    $sth->finish;	
     
    $dbh->disconnect();
     
     
     
     
    sub UPDATE_DB {
     
    	my ($acc, $start, $end) = @_;
     
     
    	$sth->execute(
    		$start, $end, $acc;
    	)
     
    	($start, $end) = ();
     
    }

    Merci pour votre aide.
    -- Jasmine --

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Coucou,
    Comme je connaissais pas vraiment l'interet des placeholders, je me suis renseigner :
    http://www.perlmonks.org/?node_id=7548
    Donc si tu as beaucoup d'enregistrement a faire, le placeholder est un bon choix.

    Par contre, les ressources ($sth) sont accessibles dans les fonctions alors que déclarées à l'extérieur ?

    Z.

  3. #3
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Merci pour ta réponse.


    Citation Envoyé par Zwiter Voir le message
    Coucou,
    Comme je connaissais pas vraiment l'interet des placeholders, je me suis renseigner
    Djibril en parle dans son article sur DBI

    Citation Envoyé par Zwiter Voir le message
    Donc si tu as beaucoup d'enregistrement a faire, le placeholder est un bon choix.
    Oui, j'en ai énormément mais est-ce utilisable dans une fonction?

    Citation Envoyé par Zwiter Voir le message
    Par contre, les ressources ($sth) sont accessibles dans les fonctions alors que déclarées à l'extérieur ?
    Probablement que oui comme toutes les variables en générales ... mais est-ce une bonne façon de programmer que de ne pas passer toutes les variables y compris celles déclarées dans le script principal? Je pense que le comportement est différent et que cela dépend de si on veut modifier la variable principale ou pas.
    -- Jasmine --

  4. #4
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    On devrait pouvoir passer cette variable en référence.
    Je l'ai jamais fait pour une variable de ressource.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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