Schrift
[thread]7656[/thread]

Plötzlich Fehlermeldung "Not A Scalar"



<< >> 10 Einträge, 1 Seite
tuxilein
 2006-01-27 14:53
#62356 #62356
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
Hallo Leute,

ich hoffe es kann mir hier jemand helfen.

Nun, ich schreibe gerade nen Socket Server mit Client das ganze Funktioniert auch, nun jetzt habe ich daran weitergearbeitet und nun Bekomme ich nach ner gewissen zeit bzw Ablauf einen Fehler:

Not a SCALAR reference at ClientConnection.pm line 129, ....

Nun das lustige ist es ging schon und es wird erst nach dem 2. durchlauf diese meldung ausgespuckt und somit ist natürlich schluss mit der Connection.

Bei dem #**** kommt die Fehlermeldung. Das lustige ist kommentiere ich den Teil aus bzw fang erst später mit einem IF an geht es. Es ist aber kein unterschied bei den anderen.

Code (perl): (dl )
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
    
    my $xml = XML::Mini::Document->new();
    $xml->parse( $mesg );
    my $xmlHash = $xml->toHash;
    
    if( exists( $xmlHash->{cafe_psfsn} ) )    #****
    {
        $self->{runLevel} = 1 if( $self->{runLevel} < 1 );
        return $self->{cmdGen}->cafeMesg();
    }
    elsif( exists $xmlHash->{version} && $self->{runLevel} >= 1 ) {
        return $self->{cmdGen}->versionMesg( $self->{config} ); }
    elsif( exists $xmlHash->{get_version} && $self->{runLevel} >= 1 ) {
        $self->{runLevel} = 2 if( $self->{runLevel} < 2 );
        return $self->{cmdGen}->versionMesg( $self->{config} ); }
    elsif( exists $xmlHash->{get_prog} && $$self->{runLevel} >= 2 )
    {
        # generiere update system object
        $self->{upSys} = UpdaterSystem->new( $self->{config}->{GENERAL}->{programfilename} );
        return $self->{cmdGen}->progMesg( $self->{upSys}->getFileParams(
               
     $self->{config}->{VERSION}->{prog} ) );
    }
    elsif( exists $xmlHash->{login} && $self->{runLevel} >= 2 ) {
        $self->{runLevel} = 3 if( $self->{runLevel} < 3 ); }
    elsif( exists $xmlHash->{logout} && $self->{runLevel} >= 3 ) { }
    elsif( exists $xmlHash->{disconnect} ) { exit; }
    elsif( exists $xmlHash->{error} ) { }
    elsif( exists $xmlHash->{search} && $self->{runLevel} >= 3 ) { }
    elsif( exists $xmlHash->{ok} ) {        
        &okMesg( $self, $xmlHash ); }
}




Jetzt habe ich eine andere Lösung verfolgt, da kanllt es wieder dort.

Hat jemand für mich eine Lösung - i verzweifle langsam!
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
 foreach my $key ( keys( %$xmlHash ) )
    {
        print "key $key";
        eval{
        if( $key =~ /cafe/ )#eq 'cafe_psfsn' )
        {
            $self->{runLevel} = 1 if( $self->{runLevel} < 1 );
            return $self->{cmdGen}->cafeMesg();
        } };
        print "error $!" if $!;
        if( $key eq 'version' && $self->{runLevel} >= 1 ) {
 ...................
\n\n

<!--EDIT|tuxilein|1138367256-->
Crian
 2006-01-27 14:56
#62357 #62357
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Was soll dieses defined exists bewirken? Meinst du statt dessen

Code: (dl )
if (exists $xmlHash->{cafe_psfsn} and defined $xmlHash->{cafe_psfsn})


?

Btw.: Deine Art zu klammern ist uneinheitlich und damit schlecht leserlich. Am besten halte dich an die Vorschläge in [tt]perldoc perlstyle.[/tt]\n\n

<!--EDIT|Crian|1138366957-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
tuxilein
 2006-01-27 15:05
#62358 #62358
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
ach ja steht da noch defined drinnen - sorry das war ein ausversehn das war ein test normal steht es nicht drinnen.

ich proge nach den richtlienien der firma - ok in dem fall is es durcheinander gekommen durch versuche den plötzlichen fehler zu finden.

i muss sagen das copy and pase hat das ja hier alles durcheinander geschmissen!

sorry\n\n

<!--EDIT|tuxilein|1138367317-->
Crian
 2006-01-27 15:12
#62359 #62359
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Die Richtlinien werden dir nicht sagen, mal die öffnende geschweifte Klammer hinter das If und mal in die nächste Zeile zu setzen, genausowenig werden sie vermutlich einzeilige Blöcke in einer Zeile verlangen / erlauben. (Vor allem schließende geschweifte Klammern hinter der letzten Zeile im Block finde ich ungewöhnlich häßlich =)

Ich würde da jedenfalls andere Richtlinien aufstellen ;)

Aber das ist ja eh zweitrangig im Moment. Wie sieht denn die fehlerhafte Stelle "wirklich" aus?

Am besten reduzierst du das Programm auf ein Minimalbeispiel (mit XML-Code im Bereich), das den Fehler reproduziert, so dass wir das nachvollziehen können.\n\n

<!--EDIT|Crian|1138367727-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
tuxilein
 2006-01-27 15:26
#62360 #62360
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
@Crian

ok i gebe zu ich habe mich nciht so drann gehalten aber man muss auch bedenken welcher zeit der code entstanden is habe ihn jetzt formatiert und schon fehler gefunden der kommt viel weiter unten vor.

Code (perl): (dl )
elsif( exists $xmlHash->{get_prog} && $$self->{runLevel} >= 2 )

$$self->{runLevel} <- tja war wol falsche zeit um zu procken und zu wenig schlaf ;)

Aber danke,
Eiso persönlich habe ich andere richtlienien wenn ich was für mich mache aber wenn man keine richtlinen so hat dann last man es krachen wenn man eh von der firma geht und die echt eckelik sind!
Taulmarill
 2006-01-27 15:35
#62361 #62361
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
[quote=tuxilein,27.01.2006, 14:26]Eiso persönlich habe ich andere richtlienien wenn ich was für mich mache aber wenn man keine richtlinen so hat dann last man es krachen wenn man eh von der firma geht und die echt eckelik sind![/quote]
syntax error!

kannst du das evtl. noch mal in deutsch formulieren? ich kann hier nicht ganz ausmachen, wass du uns nun sagen möchtest.

versteh mich nicht falsch, ich bin nicht der typische rechtschreib-pedant, (sollte bei meinen posts auch offensichtlich sein) aber ein bischen mehr interpunktion und eine vernünftige grammatik helfen beim verständniss doch ungemein.

btw. ist das problem denn nun gelöst?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
tuxilein
 2006-01-27 15:39
#62362 #62362
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
@Taulmarill

ja danke das prob is gelöst habe im eifer der nacht mich vertippt was kein syntax error war sondern nur fehler so wie bei c einfach pointer verzogen oder so.

nun danke i bin Legasteniker und mach auch was dagegen - ich schreibe echt ungerne texte - weil mich es nervt!
Ok vileicht tipp ich abunzu zu schnell so wie es am kopf rauskommt sorry!

werd schon nix mehr schreiben!
Taulmarill
 2006-01-27 16:01
#62363 #62363
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Quote
nun danke i bin Legasteniker und mach auch was dagegen - ich schreibe echt ungerne texte - weil mich es nervt!
Ok vileicht tipp ich abunzu zu schnell so wie es am kopf rauskommt sorry!

werd schon nix mehr schreiben!


so war das nicht gemeint! schreib ruhig 'nen post in's forum, wenn du alleine nicht mehr weiter kommst, dazu sind wir da. um dir helfen zu können, müssen wir nur wissen, wo das problem liegt. aber mit dem fragen stellen haben viele am anfang probleme. wenn wir nicht helfen können, werden wir schon sagen, was wir noch für info's brauchen.

das problem ist so häufig, dass es sogar eine eigene seite im wiki dafür gibt Wiki: Wie Frage Ich? :)
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
tuxilein
 2006-01-27 16:07
#62364 #62364
User since
2006-01-27
19 Artikel
BenutzerIn
[default_avatar]
naja bei mir is meistens das prob i muss was schreiben und dann finde ich beim posten der nachricht offt selbst das prob - das hört sich dumm an aber weis nicht vileicht lockert es da bischen auf k.a. wiso.
renee
 2006-01-28 02:24
#62365 #62365
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
So geht es vielen. Wenn man sich Muehe macht beim Schreiben, dann faellt einem oft auf, warum das nicht funktionieren kann. So ganz nach dem Motto "Ups, ich hatte gedacht ich mache es so, aber ich habe es anders programmiert. Das kann ja gar nicht passen"

Von daher: Nur mutig beim posten!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 10 Einträge, 1 Seite



View all threads created 2006-01-27 14:53.