-
$VARIABELEN säubern
ich hab seit einiger zeit jetzt mit dem neuen gui (GTK2 + perl) script probleme
Code:
ERROR: Stack overflow
n kumpel meint nu das es daran liegen kann das ich in dem einen script sau viele variabelen benutzte (über ~40)
nu meine frage
gibt es ne möglichkeit / einen perl befehl der alle im script verwendetet variabelen vollständig löscht ?
-
Der Fehler rührt wohl eher von falsch angewandten GUI-Funktionen her, möglicherweise Rekursionen von GUI-Elementen.
Perl kann solange Variablen handlen, wie Speicher und Virtueller Speicher vorhanden sind (die landen ausserdem auch nicht auf dem Stack).
-
hmm kannste das viell ein bissel genauer erklähren ?
bin noch blutiger anfänger in perl geschichten
aber so in etwa sieht meine gui aus (iss natührlich nur ein auszug)
Code:
#!/usr/bin/perl
use strict;
use Gtk2 '-init';
my $window = Gtk2::Window->new;
$window->set_title ("[Chako]Scripts Einstellungen");
$window->set_position("GTK_WIN_POS_MOUSE");
$window->signal_connect (destroy=>\&my_quit);
my $notebook1 = Gtk2::Notebook->new;
$window->add($notebook1);
$notebook1->show;
my $fixed1 = Gtk2::Fixed->new;
$notebook1->add($fixed1,);
$notebook1->set_tab_label_text($fixed1, "Hauptmenü");
$fixed1->show;
my $Abbrechen1 = Gtk2::Widget->new("Gtk2::Button",
label=>"Abbrechen");
$Abbrechen1->signal_connect(clicked=>\&my_quit);
$fixed1->put($Abbrechen1, 392, 272);
$Abbrechen1->set_size_request(72, 24);
$Abbrechen1->show;
my $label1 = Gtk2::Label->new("ACHTUNG !!!\n\nDas Einstellungsmenu und der UPDATER\nsind noch nicht voll einsatzbereit !!!\n\nDas was schon da ist können sie selbstverständlich \nauch nutzten :-)");
$fixed1->put($label1, 56, 40);
$label1->set_size_request(360, 104);
$label1->set_justify("GTK_JUSTIFY_CENTER");
$label1->show;
$window->show_all();
Gtk2->main;
sub my_quit {
$window->destroy();
print("Abgebrochen");
return 1 ;
}
ich weiss die art und weise wie ich das fenster schliesse ist nicht ganz wie normal
die änderung war nötig weil sonst das progg in dem ich das script laden muss beim schliessen immer mit abgeschmiert war
vielleicht gibbet da ja acuh noch ne elegantere lösung ?
-
Die elegantere Lösung ist vielleicht ein fork vor dem Aufbau der GUI.
Btw: Bei mir geht das Skript soweit fehlerfrei, nur beim Beenden der GUI läuft das Programm halt noch weiter bis man mit STRG-C nachhilft.
Keine Stack-Fehlermeldung oder ähnliches.
-
die fehler meldung kommt ja auch nicht inner konsole
sonder in xchat
wenn ich das volle script in xchat lade und ca 30-60 min aktiv nutze fängt das erst an
das der fehler erst so zeitverzögert auftritt ist ja der grund warum ich es nicht versteh :-)
ich mein das oben war wie erwähnt ja nur ein auszug da das volle zu lang ist um es hier zu posten ^^
http://phpfi.com/139765