Hallo,
kann mir wer sagen wie man das korrekt umsetzt, spiel jetzt schon fast eine Stunde damit rum ?
{my $mo='7';;$mo =~ m/5..11/ ? 'ja' : 'nein'}
Gruß
Thomas
Danke.
Komischer Kauz.
Verstehs trotzdem noch nicht.
Dein Vorschlag (letzter Beitrag), den du wieder ( nicht das erste mal und nicht nur bei mir) gelöscht hast, funktioniert:
{ my $mo=7;;$mo = ($mo ~~ [5..11]) ? 'ja' : 'nein';; }
Also auch das (Kommandozeile) :
{ $month = ($month ~~ [5..11]) ? '' : '00:00-24:00';; }
das:
{($month ~~ [5..11]) ? '' : '00:00-24:00';; }
und auch das klappt:
{ $month ~~ [5..11] ? '' : '00:00-24:00';; }
Na ja, deine Beträge _könnte_ man auch so verstehen, dass du fremde Federn verkauft hast, ohne darauf hinzuweisen bzw. eine Art "versteckten Doppelpost" erstellt hättest, oder evtl. war auch das folgende der Grund...?
Warum ich hier jetzt aber überhaupt was schreibe: der Smartmatch-Operator ist nicht unbedingt einfach, und schon seit 5.10 "experimentell" - ohne dass sich da seitdem was signifikantes getan hätte, siehe https://perldoc.perl.org/perlop.html#Smartmatch-Operator.
Ich hatte den (übernommen) Operator in einem Modul drin gehabt (vermutlich RandomTimer), dann aber auf Anraten von RichardCZ dort ausgebaut - ich nehme nach wie vor an, dass er ggf. besser weiß, wie stark ggf. der Ausbau des experimentellen Features hinter den Perl-Kulissen diskutiert wird.
Langer Rede kurzer Sinn: Hier würde ich eher eine einfache "$month > 4 && $month < 12" -Abfrage einbauen, als ein zweifelhaftes und in den Details schwieriges feature vorzuschlagen.
Zitat von: Beta-User am 07 Juni 2021, 12:20:09
Langer Rede kurzer Sinn: Hier würde ich eher eine einfache "$month > 4 && $month < 12" -Abfrage einbauen,
Ich auch, aber die Fragestellung war ja explizit nach einem Bereichsoperator.
Muss nochmal, weil ich das interessant finde, mir gleich aufgefallen war, aber gestern nicht zum nachhaken kam.
Der Kauz hat sein gezeigtes Beispiel korrekt mit einem Semikolon beendet, das hab ich auch gelesen das man Anweisungen in Perl immer mit Semikolon beenden sollte.
Die werden aber oft hier im Forum bei "onelinern" weggelassen, auch bspw. in der mqtt2.Template.
Auch wenns ohne klappt ist es doch eigentlich nicht korrekt, oder ?
Zitat... das hab ich auch gelesen das man Anweisungen in Perl immer mit Semikolon beenden sollte.
Mir egal ob alte Kamelle/Sch...
Bin zufällig drauf gestosssen, wo genau es stand.
Gleich beim dritten (http://www.mathe2.uni-bayreuth.de/perl/GK/einfuehrung.htm#print) Punkt der Einführung in Perl, wenn man sich dort auch mal eingelesen hatte.
ZitatAlle Perl-Befehle werden am Ende mit einem ; abgeschlossen.
Zitat von: TomLee am 08 September 2021, 15:47:58
Mir egal ob alte Kamelle/Sch...
Sry
Zitat von: MadMax-FHEM am 28 Oktober 2021, 19:45:09
Ist ja nur 1 Befehl, da ist Perl wohl nicht so genau... ;)
Zitat von: MadMax-FHEM am 29 Oktober 2021, 19:42:25
Und noch mal, wenn du in den geschweiften Klammern (bei/nach if/else) nur einen Befehl hast, dann kannst du die/den Strichpunkt(e) auch ganz weglassen.
Da keiner bisher keiner geantwortet hat und die letzte Frage für mich immer noch offen ist/war, ziehe ich für mich aus diesen zwei Aussagen (Zitaten oben) bzw. der letzteren, Heute, das man das Semikolon weglassen kann wenn es nur eine Anweisung gibt ?
Du kannst ein Semikolon immer vor einer geschweiften Klammer-zu weglassen.
Danke.
Wo steht das ?
Zitat von: TomLee am 29 Oktober 2021, 21:41:00
Danke.
Wo steht das ?
Keine Ahnung.
Ich nutze diese Perleigenschaft aber nicht, da man beim erweitern des Programmcodes plötzlich fehlende Semikolons mitten im Code hat.
Mich hat es jetzt auch interessiert. Ich gaube, hier ist es ganz gut erklärt.
https://www.perl-community.de/bat/poard/thread/7940?p=2
Gruß schwatter
Danke, wenn man das so liest ist es doch ganz einfach zu erklären, das Semikolon ist ein Trenner von Anweisungen, für
eine Anweisung brauchts auch keinen Trenner.
ZitatIch nutze diese Perleigenschaft aber nicht, da man beim erweitern des Programmcodes plötzlich fehlende Semikolons mitten im Code hat.
Wie das gemeint ist, hab ich bis jetzt nicht verstanden, würd ich aber gerne. ::)
Ist es so zu verstehen das du sie grundsätzlich mit angibst ?
Zitat von: TomLee am 30 Oktober 2021, 01:11:18
Ist es so zu verstehen das du sie grundsätzlich mit angibst ?
Ich hatte es so verstanden und mache es norm. auch so, also Semikolon anfügen (ist in anderen Sprachen obligatorisch und ich daher gewohnt).
Wenn man dann nämlich mal eine Zeile ergänzt kann es nicht passieren, dass man es dann vergisst...
Ja es gibt einen Fehler und man kann es schnell beheben aber lästig/unnötig... ;)
Gruß, Joachim