Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1198 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  passer une référence à un autre script.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

passer une référence à un autre script.

n°1567268
Flitz
Posté le 30-05-2007 à 14:37:50  profilanswer
 

Bonjour à tous.  :hello:  
 
Sorry de ma question mais je ne parviens pas à réaliser ce que je voudrais ou du moins je ne comprends rien ;-).
 
Je dispose d'un script qui appelle un autre script et j'aimerais lui faire passer une référence. Je m'explique, le premier script appelle le deuxième pour chaque éléments d'un réseau. Ce deuxième script recueille alors des infos qu'il stocke dans une base de données mysql. Afin d'éviter que le deuxième script ne recrée une connexion à la BD pour chaque élément, j'aimerais initialiser la connexion dans le premier script et passer au deuxième la structure de données de cette connexion. Cependant je n'y parviens pas. Auriez-vous une petite idée de comment je pourrais faire ça ?
 
Je vous joints les deux bouts de compte :
 
 
Premier script
-------------

Code :
  1. $host="localhost";
  2. $database="telephonie";
  3. $user="";
  4. $password="";
  5. $dbh_tel = Mysql->connect($host, $database, $user, $password);
  6. for(my $ii=0; $ii<$nblines; $ii++) {
  7.  $xx = 1;
  8.  @arr = $sth->fetchrow;
  9.  $ip = $arr[0];
  10.  $nom_switch = $arr[1];
  11.  # $ref_db = \$dbh_tel; ----> ????
  12.  system('/usr/local/bin/routeur/scriptinterf/scriptInterf1sw.pl $ip $nom_switch $ref_db &');
  13.                 #C'est ici que je n'arrive pas à passer la référence : si je mets des " dans la commande system alors il me prend la référence avec des parenthèses et j'ai des erreurs de compilations.
  14. }


 
 
Deuxième script
---------------
 

Code :
  1. $ip = $ARGV[0];
  2. $nom_switch = $ARGV[1];
  3. $dbh_tel = \$ARGV[2];     #On passe la BD en arg pour ne pas faire plein de connexions en meme temps.
  4. print "\n\n\n **** $dbh_tel\n\n\n";
  5. $stmt = "replace into `telephones` (`MAC`,`NUM_TEL`,`NOM`,`IP_TEL`,`ETAT`,`SWITCH`,`INTERFACE`,`DATE_MAJ`) values ('$mac','$numero','$nom_user','$iptel','$state','$nom_switch','$interf','$now');";
  6.     #print "$stmt\n";
  7.     $sth_tel = $dbh_tel->query($stmt);


 
je vous remercie d'avance pour votre aide
 
 :jap:


Message édité par Flitz le 30-05-2007 à 14:39:34
mood
Publicité
Posté le 30-05-2007 à 14:37:50  profilanswer
 

n°1567646
Aricoh
gentil mais fo po pousser
Posté le 31-05-2007 à 09:26:51  profilanswer
 

Bonjour,
 
l'idéal serait que tu transformes ton second script en package (.pm au lieu de .pl). Tu fonctionnalises tout son code et voilà. Si c'est faisable sans trop de contraintes, bien entendu.
 
Sinon, tu pourrais tenter une alternative : écrire dans un fichier temporaire les variables que le second script doit récupérer. Ensuite, ton second script n'a plus qu'à lire ce fichier temporaire et faire son taf.
 
Ton appel system( ) ne me semble pas correct avec l'emploi de ' ' car tes variables ne sont pas extrapolées. Par exemple, tu crois fournir au 2è script le contenu de la variable $nom_switch alors qu'en fin de compte, tu lui envoie textuellement '$nom_switch'.


Message édité par Aricoh le 31-05-2007 à 09:28:58

---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  passer une référence à un autre script.

 

Sujets relatifs
[PHP] Mon script PHP tourne trop longtemps et s'arrete ![PHP/MYSQL] pourquoi ce script marche pas ?
Envoyer un formulaire sans passer par le mail ?script bash, avec ssh cat toto > titi
correction tout petit script (debutant) (JAVASCRIPT)exec + afficher resultat script bash
Exec + afficher resultat script bash[ FLASH / ACTIONSCRIPT ] recherche de script
[VBS] Stopper un processus avec un script VBSScript de Sauvegarde du Dossier "Mes Documents"
Plus de sujets relatifs à : passer une référence à un autre script.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR