Johannes Mainusch: Wie setze ich eine Environment Variable in PERL (WinNT, Apache)?

Hallo,

ich versuche ENV Variable in perl zu setzen und dann in einem C programm aufzurufen. Das funktioniert uner Linus/Apache/perl soweit auch super. Sobald ich aberdasselbe unter WINNT/APACHE/PERL versuche, sehe ich die eben noch gesetzen Variablen im C programm nciht mehr. Wer kann mir einen Tipp geben??

foreach $name (@forms) {        #und ausgeben
$ENV{$name} = $FORM{$name};  # <-- Variablen gesetzt...
print "$name = $FORM{$name}<br>";
}

exec (".\debug\v.exe");  # <-- hier kann ich die eben gesetzen Variablen nicht mehr finden

  1. Seid gegruesst!

    foreach $name (@forms) {        #und ausgeben

    »»  $ENV{$name} = $FORM{$name};  # <-- Variablen gesetzt...
    »»  print "$name = $FORM{$name}

    ";
    }

    exec (".\debug\v.exe");  # <-- hier kann ich die eben gesetzen Variablen nicht mehr finden

    Das muss daran liegen, dass...

    Moeglichkeit a) eNTe ein minderwertiges Spackenbetriebssystem fuer uninspirierte Deppen ist.
    Moeglichkeit b) eNTe gar keine Environment Variablen hat bzw. Perl die nicht richtig setzt.
    Moeglichkeit c) Dein C einen Sockenschuss hat.
    Moeglichkeit d) Du nicht programmieren kannst.

    Tjaja... such' Dir eine der tollen Moeglichkeiten aus *gg*

    Vielleicht hilft ja ein system ("set tralala = dings") oder so oder ein exec - falls es das in Windows eNTe geben sollte. Koennte immerhin sein, eNTe hat ja so ein halbherziges POSIX Kompatibilitaetsteil...
    Das "Camel Book" und Larry Wall schweigen sich ueber solche Probleme natuerlich aus - wer hat schon eNTe?

    Vielleicht gibt es dazu auch eine Newsgroup (alt.software.perl.taintedoperatingsystems.ms.windows.nt.problems ...)

    Immer hilfsbereit,

    Lord Helmchen

    1. Seid gegruesst!

      Gruß!

      foreach $name (@forms) {        #und ausgeben
      »»  $ENV{$name} = $FORM{$name};  # <-- Variablen gesetzt...
      »»  print "$name = $FORM{$name}
      ";
      }

      exec (".\debug\v.exe");  # <-- hier kann ich die eben gesetzen Variablen nicht mehr finden

      schätze, daß dein v.exe eine neue shell bekommt, die so garnix weiß von den gesetzten env variablen. ist das "exec" wirklich notwendig? ginge auch "system()"?

      ciao
        k@rl

      1. Seid gegruesst!

        Gruß!

        foreach $name (@forms) {        #und ausgeben
        »»  $ENV{$name} = $FORM{$name};  # <-- Variablen gesetzt...
        »»  print "$name = $FORM{$name}
        ";
        }

        exec (".\debug\v.exe");  # <-- hier kann ich die eben gesetzen Variablen nicht mehr finden

        schätze, daß dein v.exe eine neue shell bekommt, die so garnix weiß von den gesetzten env variablen. ist das "exec" wirklich notwendig? ginge auch "system()"?

        ciao
          k@rl

        Danke Lord Helmchen, danke K@arl,

        mit system() gehts unter NT und auch unter Linux...
        J.
        :-)