Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Variableninhalte gehen verloren

Diskussion: Variableninhalte gehen verloren im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Ich hab hier gerade ein recht seltsames Problem mit einem Perl/CGI-Skript. Situation ist folgende... Das Skript loest zuerstmal eine ...

Antwort
Alt 31.07.09, 05:52   #1 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Variableninhalte gehen verloren

Anzeige

Ich hab hier gerade ein recht seltsames Problem mit einem Perl/CGI-Skript. Situation ist folgende... Das Skript loest zuerstmal eine ID anhand der User-ID auf:

Code:
sub char_info
{
    ...
    my $char_id = &char_id($user_id);
und nutzt diese im weiteren Verlauf als Parameter fuer einige Funktionen...

Code:
    # charakter-namen aufloesen
    my $char_name = &char_name($char_id);
    # attribute holen
    my %char_attrs = &char_attr($char_id);
Bis zu diesem Punkt stellt das auch soweit kein Problem dar und funktioniert, aber seltsamerweise ist der Inhalt von $char_id danach ploetzlich verschwunden. Beim folgenden Aufruf von

Code:
    my %char_skills = &char_skills($char_id);
scheint $char_id leer zu sein, denn bei char_skills() kommt $char_id nie an.

Code:
sub char_skills
{
    my ($char) = @_;
    ...
    print "char: $char\n";
...
Das mal testweise auf der Konsole aufgerufen ergibt, dass $char offenbar leer ist. Wo ist der Inhalt der Variablen ploetzlich hin? Hat jemand eine Idee, was ich hier uebersehe?
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
Alt 31.07.09, 21:53   #2 (permalink)
Member of Honour
 
Registriert seit: 06.10.01
mido Leistung: Facit NTK
Likes: 1
Standard

Ich hatte bisher nicht das Vergnügen, mit Perl zu arbeiten, aber dennoch eine Idee;
Kann es sein, dass $char_id von char_name() oder char_attr() als eine Art Referenz / Zeiger behandelt wird, so dass der Inhalt (vll. fälschlicher Weise) überschrieben wird?
mido ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 31.07.09, 21:57   #3 (permalink)
 
Registriert seit: 19.07.09
GregorSamsa Leistung: Facit NTK
Likes: 0
Standard

Versuch mal durch (massenhaft) Debugausgaben herauszufinden, wann die ID gelöscht wird.

Ich würde auch auf das von little_Newbie beschriebene Problem tippen.

Versuch also mal die "böse" Funktion zu isolieren, und paste mal die Funktion oder schau selber ob du dort einen Fehler findest.
GregorSamsa ist offline   Mit Zitat antworten
Alt 01.08.09, 05:44   #4 (permalink)
Moderator
Themenstarter
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Das konnte ja nicht das Problem sein, da saemtliche Funktionen den Inhalt von $char_id in eine eigene Variable kopieren und dort damit weiterarbeiten (my $char = @_).Mittlerweile hab ich das Problem aber geloest. Als CGI verhaelt sich Perl offenbar etwas anders als auf der Konsole. Debug-Prints haben daher nichts geholfen, denn diese behaupteten, das $char_id nichtmal bei char_name() ankommt, was aber nicht sein konnte, da die Funktion den gewuenschten Wert zurueck gibt. Im Endeffekt war's dann ein Tipp-Fehler in char_attr(), der die Probleme verursacht hat. Rausgekommen ist das erst, als ich die Rueckgabe der Funktionen mal auf ein Scalar gesetzt hatte anstatt einem Hash und mir alle moeglichen Variablen zurueckgeben lassen hab, so dass ich sie direkt in der Seite ausgeben lassen konnte. Trotzdem danke fuers mitdenken.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Variableninhalte gehen verloren
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gehen LVM Volumes bein Neuinstallation verloren? Serow Linux/UNIX 0 05.05.09 11:19
internetzugangsdaten verloren loupgarou84 Die Problemzone 2 01.03.09 17:49
E-Mail gehen verloren - gmail tanj Internet Allgemein 0 24.08.07 14:59
Handy verloren Valentin HaBo Lounge 2 01.02.07 21:21


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61