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 :

[langage]variable partagée


Sujet :

Langage Perl

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [langage]variable partagée
    Bonjour,

    Je souhaiterai savoir si c'est possible de passer une variable d'un script Perl à un autre script Perl.
    Par ex:
    j'ai un script a.pl qui initialise une variable a. De plus ce script tourne en permanence (tourne en tache de fond).
    Puis dans un autre script b.pl, je souhaite afficher le contenu de la variable a du script a.pl
    voila
    (j'ai essayé de les commandes shmget, shmread,... de Perl mais le prb c'est que je n'arrive pas à accéder à partir du script b.pl à l'adresse mémoire définit dans a.pl. )

    Merci par avance

  2. #2
    Membre actif
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Points : 203
    Points
    203
    Par défaut solution lo-tech
    Tu sais, parfois les solutions low-tech sont les meilleurs. Shared memory est bien, mais tu dois alors gerer le probleme des segments ophelins. C'est galere.

    Ce qui est trivial a faire est d'ecrire le/les valeurs dans un fichier. Si le contenu est complexe, tu peux utiliser Storable ou YAML. Ensuite, dans l'autre process, tu peux stat'er le fichier pour voir s'il change, et puis l'ouvrir et charger le contenu.

    Ce n'est pas aussi inefficace que ca : normalement les disk blocks sont en cache en memoire de toute facon. Il y a juste un petit souci pour eviter que le lecteur lit le fichier avant qu'il ne soit completement ecrit. Pour eviter ce probleme, fais qq chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $out = "data.attente";
    open OUT, '>', $out or die "Ne peut ouvrir $out: $!\n";
    print OUT "toto=1\n";
    close OUT;
    (my $new = $out) =~ s/attente$/pret/;
    rename $out, $new or die "Ne peut renommer $out en $new: $!\n";
    L'ideal est bien sur d'encapsuler cela dans un deux subs, pour l'ecriture, et la lecture. Ensuite, si jamais tu as des problemes de perf (ce que je doute), tu peut les reecrire en utilisant du shared memory, sans que ca ait une influence sur le reste.

    N

Discussions similaires

  1. [langage]VARIABLE + tr///
    Par cbassti1 dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2005, 18h01
  2. [CR] Variables partagées
    Par titdiable dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 21/12/2004, 10h16
  3. [langage] variable selon la ligne de commande
    Par rodolphedj dans le forum Langage
    Réponses: 3
    Dernier message: 13/12/2004, 14h21
  4. [langage] variable dans le path d'un fichier
    Par caro_du_94 dans le forum Langage
    Réponses: 2
    Dernier message: 21/10/2004, 13h03
  5. [langage] Variable %ENV inter script
    Par MSP dans le forum Langage
    Réponses: 6
    Dernier message: 04/08/2003, 11h08

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