FHEM Forum

FHEM - Entwicklung => FHEM Development => Perl Ecke => Thema gestartet von: CoolTux am 25 April 2021, 11:11:14

Titel: Perl Regex und die Frage nach dem ;
Beitrag von: CoolTux am 25 April 2021, 11:11:14
Hallo,

Ich habe i Code von fhem.pl folgenden Eintrag gefunden

=~ m/^$_$/; } split(":", $cl);
Mich wundert ein wenig das erste ;
=~ m/^$_$/;
So wie ich das kenne wäre das ; ein Modifier oder Descriptior für Perl Regex. Aber da kenne ich kein ;
Kann mich da bitte jemand erhellen? Danke



Grüße
Marko
Titel: Antw:Perl Regex und die Frage nach dem ;
Beitrag von: rudolfkoenig am 25 April 2021, 20:27:00
Ueberfluessiger Befehlstrenner?
Titel: Antw:Perl Regex und die Frage nach dem ;
Beitrag von: CoolTux am 25 April 2021, 21:48:28
Zitat von: rudolfkoenig am 25 April 2021, 20:27:00
Ueberfluessiger Befehlstrenner?

Überflüssig im Sinne von stört nicht, ist aber auch nicht unbedingt richtig?

Die Zeile steht in der aktuellen fhem.pl in Zeile 2242 und gehört zur AssignIoPort Funktion
Titel: Antw:Perl Regex und die Frage nach dem ;
Beitrag von: rudolfkoenig am 25 April 2021, 22:27:34
Na richtig ist so 'ne Sache.
In { Log 1, "Hallo"; } kann man das ; auch weglassen, wird aber deswegen nicht "richtiger".
Titel: Antw:Perl Regex und die Frage nach dem ;
Beitrag von: CoolTux am 26 April 2021, 13:41:45
Ah jetzt verstehe ich wie Du auf "Ueberfluessiger Befehlstrenner?" kommst.

Also die ganze Zeile sieht ja so aus

my @fnd = grep { $hash->{TYPE} =~ m/^$_$/; } split(":", $cl);

für mich gibt ein Befehlstrenner da keinen Sinn. Übersehe ich etwas.
Titel: Antw:Perl Regex und die Frage nach dem ;
Beitrag von: herrmannj am 26 April 2021, 14:26:33
jetzt besser?:

my @fnd = grep {
    $hash->{TYPE} =~ m/^$_$/;
} split(":", $cl);
Titel: Antw:Perl Regex und die Frage nach dem ;
Beitrag von: CoolTux am 26 April 2021, 14:29:18
Zitat von: herrmannj am 26 April 2021, 14:26:33
jetzt besser?:

my @fnd = grep {
    $hash->{TYPE} =~ m/^$_$/;
} split(":", $cl);


Ah ein Licht geht sowas von auf. Ich habe mich da zu sehr ablenken lassen. { } verstehe ich jetzt ganz anders. Danke Euch.