%ENV enthältnicht alle Umgebungsvariablen

Hallo,

wenn ich mir mit

while ( ($k, $v) = each %ENV ) {
print "$k\n";
}

den Inhalt von %ENV ausgeben lasse, erhalte ich 36 Variablen. Gebe ich
in der bash 'echo $' ein und drücke 2 * TAB, erhalte ich aber 72
Variablen. Insbesondere fehlt mir in Perl der HOSTNAME.

Ich habe dann testweise 3 neue Variablen mit 'export ...=...'
hinzugefügt. Alle tauchen dann auch in %ENV auf.

Hier meine Versionen:

$ perl --version
This is perl, v5.8.8 built for i486-linux-gnu-thread-multi

$ bash --version
GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)

Warum enthält %ENV nicht alle Umgebungsvariablen der bash?

TIA + Gruß
Til
Til Schubbe [ So, 22 Oktober 2006 12:02 ] [ ID #1509587 ]

Re: %ENV enthältnicht alle Umgebungsvariablen

Til Schubbe <usenet [at] lists.schubbe.org> wrote:
> Warum enthält %ENV nicht alle Umgebungsvariablen der bash?

Weil es wahrscheinlich keine Umgebungs (=Environment) Variablen sind,
sondern lokale. Erst duch das 'export' Statement werden sie ins
Environment übernommen.

Versuch doch einfach mal 'export VARIABLENNAME' auf die, die Du noch
zusätzlich brauchst. Danach müßte auch Perl sie anzeigen können.

Gruß,

Guido
Guido Ostkamp [ So, 22 Oktober 2006 12:44 ] [ ID #1509588 ]

Re: %ENV enthält nicht alle Umgebungsvariablen

Til:

> $ bash --version
> GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
>
> Warum enthält %ENV nicht alle Umgebungsvariablen der bash?

BASH_VERSION (ich nehme an, diese Variable meinst du), ist
_keine_ Umgebungsvariable, sondern eine ganz normale Shell-
Variable, die die Bash beim Starten setzt (und die du, wenn du
Lust hast, auch jederzeit ändern kannst).

Wenn du ein

export BASH_VERSION

machst, wird du sie auch in %ENV wiederfinden.

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol [at] adv.magwien.gv.at
Ferry Bolhar [ Mo, 23 Oktober 2006 09:31 ] [ ID #1510762 ]
Perl » de.comp.lang.perl.misc » %ENV enthältnicht alle Umgebungsvariablen

Vorheriges Thema: [LWP] connect: Invalid argument
Nächstes Thema: use funzt nicht