Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6812[/thread]

zu viele Umgebungsvariablen unter XP



<< >> 8 Einträge, 1 Seite
Gast Gast
 2005-03-23 12:06
#52891 #52891
Hallo,

ich verwende ActivePerl in der Version 5.8.2 bzw. 5.8.6 unter Windows XP SP2.
Ich habe das Problem, dass wenn ich zu viele Umgebungsvariablen setze (ca. 550) ich mit Perl-Skripten keine system-Befehle wie
system("dir");
mehr ausführen kann. Auch andere Varianten wie qx o. Ä. funktionieren nicht mehr. Perlinterne Funktionen (normales print etc.) funktionieren jedoch wie gehabt.

Kennt jemand das Problem und gibt es für ActivePerl irgendeine Abhilfe ?
Soweit ich feststellen kann funktioniert das Ganze z.B. mit Indigoperl.

Gruss
Ulrich
Rambo
 2005-03-23 12:39
#52892 #52892
User since
2003-08-14
803 Artikel
BenutzerIn

user image
nur so am rande
was haben denn 500 und mehr umgebungsvariablen auf einem
pc zu suchen? so was kann doch gar nicht sauber laufen?!
[E|B]
 2005-03-23 18:26
#52893 #52893
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Das noch nicht mal. Ich sehe keinen Grund, weshalb ein Script keine Aufrufe aus dem Script heraus ausführen kann. Meiner Meinung hat das mit den Umgebungsvariablen nicht viel zu tun, es sei denn Windows sperrt Anwendungen, die es dermaßen belasten.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
lichtkind
 2005-03-23 18:30
#52894 #52894
User since
2004-03-22
5703 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
so viele daten sind für umgebungsvar nicht gemacht kannst es nicht in einer textdatei speichern?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
ptk
 2005-03-23 19:12
#52895 #52895
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wahrscheinlich gibt es eine obere Grenze fuer die Laenge aller Environment-Variablen, vielleicht zusammen mit der verwendeten Kommandozeile. Mach doch Experimente und versuch festzustellen, wo diese Grenze liegt. Wahrscheinlich ist es eine "runde" Zahl wie 4096.
esskar
 2005-03-23 21:42
#52896 #52896
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
nö; windows hat da keine Beschränkung;
eine Env.Variable kann sogar genau 32767 bytes groß sein. Und es kann beliebig viele Env.Variablen geben. Ich könnt mir aber denken, dass Perl an der Stelle nicht mehr mit macht, da es nicht berücksichtigt wird. Wenn es nämlich an Windows liegen würde, würden auch sonst keine Programme mehr laufen, da jedes Programm eine eigene Kopie des Environments bekommt!
esskar
 2005-03-23 21:54
#52897 #52897
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
aber: ich hab mal in dir perl quellen von activestate geschaut...
immer dann, wenn CreateProcess aufgerufen wird (und das wird es, wenn perl system aufruft), wird als Environement immer NULL mitgegeben: dies bewirkt, dass das environement vererbt wird; ist also schon seltsam.... bist du sicher, dass du nicht sonstwo einen fehler machst?
sesth
 2005-03-24 22:51
#52898 #52898
User since
2005-02-01
181 Artikel
BenutzerIn
[default_avatar]
Wann setzt Du denn die Umgebungsvariablen? Falls Du es aus Deinem Perl-Programm machst, liegt es daran, dass kein Platz mehr in der Umgebung ist. Wenn Du Perl startest, bekommst Du die aktuelle Umgebung vererbt und als Reserve noch etwas Platz, den Du vermutlich aufgebraucht hast. Starte Dein Programm mal über folgenden Befehl:
Code: (dl )
command /e:16000 /c perl myprog.pl

Die 16000 sind die anfängliche Environmentgröße. Dort solltest Du bis 32000 eingeben können. Vielleicht klappt es dann.

Gruß
Thomas
Gruß
Thomas
<< >> 8 Einträge, 1 Seite



View all threads created 2005-03-23 12:06.