Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Perl - If Statement String Vergleich

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JuMi2006
    antwortet
    Schon richtig verstanden und ich hab wieder was über Perl gelernt ... aber was gibt denn $online nun aus ?

    Gruß Mirko

    Einen Kommentar schreiben:


  • kleinklausi
    antwortet
    Zitat von JuMi2006 Beitrag anzeigen
    Deine Anführungsstriche rund um curl... sehen komisch aus.
    Hm, naja - das sind so Anführungsstriche, die in Perl einen Systemaufruf ausführen. Also eine Abkürzung für system(). Von daher sind die schon ok.

    Beim nachdimmen plugin war das halt date aus der Shell. Da das nachher aber durch localtime() in Perl ersetzt wurde, war das dann ja hinfällig.

    Oder verstehe ich Dich falsch?

    Gruß Moritz

    Einen Kommentar schreiben:


  • vlamers
    antwortet
    Hi,

    mein solarlog sagt bei der Abfrage immer false. (auch im Terminal).
    Da sich der Wert in der base_vars.js nicht ändert.
    Da steht immer var isOnline=false.

    Was genau möchtest du vom Solarlog wissen? Vermute ob die WR online sind? Oder nur ob der SL online ist?

    Wenn die Module, wäre es leichter den Wert aus der min_days mit 0 zu vergleichen... (und nebenbei ein rrd zu füllen)

    Gruß

    Edit:
    nebenbei sind die Abfragezeiten sehr lang ( >1,2 sek bei mir??) warum holst du die Daten nicht per cron ins tmp Verzeichniss, und diese dann im Plugin zerlegen. So mache ich das. Laufzeit des Plugins ca 0,1sek.

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Deine Anführungsstriche rund um curl... sehen komisch aus.
    Das hattest Du doch schon beim Nachdimmen Plugin

    Ich glaube das ist es, mach doch mal in der zweiten Zeile ein print oder plugin_log, und check mal was bei $online wirklich raus kommt.

    Gruß

    Einen Kommentar schreiben:


  • kleinklausi
    antwortet
    das ändert leider nichts.

    Ich dachte bei " werden auch Variablen innerhalb des Strings interpretiert. Bei ' nicht.

    Einen Kommentar schreiben:


  • Robert_Mini
    antwortet
    Ich würde spontan $online eq "true" probieren.
    Aber ganz klar war mir eq Vs. == und ' Vs. " in perl auch noch nie.

    Lg Robert

    Einen Kommentar schreiben:


  • kleinklausi
    antwortet
    Hi Bodo,

    ich glaubte sowas verstanden zu haben, dass es in Perl kein True und False wie in anderen Sprachen gibt. Alles was nicht undef oder so ist, ist true...

    Das grep, sed Gewurschtel gibt mir den string "true" oder "false" wieder. Der muss doch weiterverarbeitet werden können...?

    Gruß Moritz

    Einen Kommentar schreiben:


  • Bodo
    antwortet
    Hoi

    Ist true und false nicht 0 und 1 im Sinne von Binär?

    Einen Kommentar schreiben:


  • kleinklausi
    hat ein Thema erstellt [wiregate] - √ - Perl - If Statement String Vergleich.

    - √ - Perl - If Statement String Vergleich

    Hallo,

    kann mir bitte mal kurz jemand die Augen öffnen? Warum springt Perl niemals beim IF in die erste Klammer. Auch nicht wenn $online wirklich 'true' ist. Jedenfalls sagt das ein print $online.

    Ich hoffe die Antwort ist so einfach, dass ich mich gleich schämen muss...

    Code:
    my $online;
    $online = `curl http://solarlog/base_vars.js?nocache -s --connect-timeout 1 | grep isOnline | sed -e "s/var isOnline=//g"`;
    
    if ($online eq 'true') {
        print "is online: $online";
    }
    else {
        print "is not online: $online";
    }
    Danke Moritz
Lädt...
X