Schon richtig verstanden und ich hab wieder was über Perl gelernt ... aber was gibt denn $online nun aus ?
Gruß Mirko
Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - Perl - If Statement String Vergleich
Einklappen
Dieses Thema ist geschlossen.
X
X
-
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.Zitat von JuMi2006 Beitrag anzeigenDeine Anführungsstriche rund um curl... sehen komisch aus.
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:
-
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:
-
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:
-
das ändert leider nichts.
Ich dachte bei " werden auch Variablen innerhalb des Strings interpretiert. Bei ' nicht.
Einen Kommentar schreiben:
-
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:
-
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:
-
- √ - 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...
Danke MoritzCode: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"; }Stichworte: -


Einen Kommentar schreiben: