Comment passer de l'environnement de mon application Web Python à un programme Perl?

StackOverflow https://stackoverflow.com/questions/1022694

  •  06-07-2019
  •  | 
  •  

Question

Comment définir le% ENV de Perl pour introduire un script Perl dans le contexte de mon application Web?

J'ai un site Web écrit dans une langue différente de Perl (Python). Cependant, je dois utiliser une application Perl, qui consiste en un fichier .pl:

    #!/usr/bin/env perl
    "$ENV{DOCUMENT_ROOT}/foo/bar.pm" =~ /^(.+)$/;
    require $1;
    my $BAR = new BAR(
        user    => 'foo',
    );
    print $bar->get_content;

... et un module bar.pm, qui repose sur "$ ENV {HTTP_HOST}", , "$ ENV {REQUEST_URI}", , "$ ENV {REMOTE_ADDR}" et "$ ENV {DOCUMENT_ROOT}" .

Comment dois-je définir ce hachage? C’est ma toute première expérience avec Perl, il se peut donc que je manque quelque chose de vraiment évident ici:)

Était-ce utile?

La solution

Si vous générez ce processus Perl à partir de votre code Python (par opposition à "directement à partir du serveur Web"), il existe plusieurs façons de définir l'environnement de processus enfant à partir de l'environnement de processus parent Python, en fonction de votre choix. utiliser pour le "frai".

Par exemple, si vous utilisez sous-processus.Popen , vous pouvez passer un argument env = au dictionnaire souhaité, sous la forme docs expliquer:

  

Si env n'est pas None, ce doit être un   cartographie qui définit l'environnement   variables pour le nouveau processus; celles-ci   sont utilisés au lieu d’hériter du   processus en cours & # 8217; environnement, qui est   le comportement par défaut.

Autres conseils

Le hachage % ENV spécial de Perl constitue l'interface avec l'environnement. (Sous le capot, il appelle getenv et putenv selon le cas.)

Par exemple:

$ cat run.sh 
#! /bin/bash

export REMOTE_ADDR=127.0.0.1

perl -le 'print $ENV{REMOTE_ADDR}'

$ ./run.sh 
127.0.0.1

Votre serveur Web doit définir ces variables d’environnement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top