Autor Thema: [geklärt] perl -c - Ausgabe abhängig von Perl-Version (Bsp.: RandomTimer)?  (Gelesen 925 mal)

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16312
Hi Richard,

$ perl -c 98_RandomTimer.pm
98_RandomTimer.pm syntax OK

Mein Tipp wäre jetzt, dass Du irgendwo die Syntax zerschossen hast. Also noch 3x prüfen, ansonsten neuer thread und dort das FIle anhängen
Habe die File jetzt nochmal aus dem svn geholt (https://svn.fhem.de/trac/export/21511/trunk/fhem/FHEM/98_RandomTimer.pm), und dann das Kommando drüber gehen lassen.

Ich erhalte weiter (u.A.) die genannte Fehlermeldung "syntax error at 98_RandomTimer.pm line 319, near "} else"".
perl -v auf dem System sagt:
Zitat
This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi
(with 67 registered patches, see perl -V for more detail)
Habe die Übung dann auf meinem Debian 10-System gemacht (mit der dort vorhandenen Datei, die via update gekommen sein müßte), selbe syntax-Error-Meldung, aber
Zitat
This is perl 5, version 28, subversion 1 (v5.28.1) built for x86_64-linux-gnu-thread-multi
(with 61 registered patches, see perl -V for more detail)

Ideen?
« Letzte Änderung: 26 März 2020, 12:19:07 von Beta-User »
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:perl -c - Ausgabe abhängig von Perl-Version (Bsp.: RandomTimer)?
« Antwort #1 am: 25 März 2020, 14:38:52 »
Ideen?

Ja klar.

sub Log ($$);
sub Log3 ($$$);

fehlen in Deinem Morphium Pflaster. Ohne die bekomme ich den gleichen Fehler wie Du.

Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16312
Antw:perl -c - Ausgabe abhängig von Perl-Version (Bsp.: RandomTimer)?
« Antwort #2 am: 25 März 2020, 15:06:35 »
OK, man braucht also wirklich das "Morphium"...

Habe das (und den WDT) jetzt komplett auf Log3 umgestellt,  die Prototype-Declarations auch noch raus und den "installer.pm"-spezifischen Teil bei WDT auch noch korrigiert, nachdem man POSIX ja doch nicht "used".

Thx. für's Nachstellen.
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:perl -c - Ausgabe abhängig von Perl-Version (Bsp.: RandomTimer)?
« Antwort #3 am: 25 März 2020, 15:14:05 »
OK, man braucht also wirklich das "Morphium"...

So lange man Prototypes und globales G'schwerl hat - ja. Fernziel ist ja, dass man eben kein Morphium mehr braucht, alles schön gekapselt, super lesbar und effizient ist.  ;)

Das geht nicht von Heute auf Morgen, aber dann vielleicht doch schneller als so mancher glaubt.

Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16312
Antw:perl -c - Ausgabe abhängig von Perl-Version (Bsp.: RandomTimer)?
« Antwort #4 am: 25 März 2020, 15:33:56 »
Hmm,

zwei fragende Anmerkungen dazu:
1. Muß die Wortwahl sein? Jedenfalls mich lenkt es vom Thema ab, wenn da negaitve Wertungen ohne Begründungen stehen. (Ob man die forward-Deklarationen  jetzt braucht oder nicht, kommt mir etwas wie eine Geschmacksfrage vor, aber z.B.....)

2. ...das "globale G'schwerl" kommt mir in großen Teilen so vor, als wäre das für eine sinnvolle Zusammenarbeit zwischen den Modulen und fhem.pl notwendig. Ich lerne da ja gerne weiter dazu, aber wie sollte man denn deiner Meinung nach "zentrale Kenner" wie "$init_done" oder "%defs" unterbringen oder organisieren?
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:perl -c - Ausgabe abhängig von Perl-Version (Bsp.: RandomTimer)?
« Antwort #5 am: 25 März 2020, 17:11:42 »
1. Muß die Wortwahl sein? Jedenfalls mich lenkt es vom Thema ab, wenn da negaitve Wertungen ohne Begründungen stehen.

Die Wortwahl ist eine absolute Notwendigkeit:

  • Es ist für mich unabdingbares Ventil mit der gegenwärtigen Situation psychisch fertig zu werden.  ;) Darüber hinaus will ich in diesem Zusammenhang den vollen Dynamikumfang nutzen, den mir die Sprache bietet und ich rede mir gerne ein durch diese Formulierungen meine Texte interessanter (lies: nicht öde, langweilig, steril) zu gestalten.
  • Für alle meine Äußerungen gibt es Begründungen (oft nicht einmal von mir, sondern von kompetenteren Leuten), aber die Sachverhalte sind nicht selten komplex und umfangreich. Die Wortwahl ist daher eine Art "Forward Deklaration".  ;)

Prototypes sind keine Geschmacksfrage. Siehe PBP 194-196
Es gibt genau einen validen Grund warum man die braucht und der trifft auf FHEM nicht zu: Wenn man neue Perl-builtins bauen möchte.

Zitat
2. ...das "globale G'schwerl" kommt mir in großen Teilen so vor, als wäre das für eine sinnvolle Zusammenarbeit zwischen den Modulen und fhem.pl notwendig. Ich lerne da ja gerne weiter dazu, aber wie sollte man denn deiner Meinung nach "zentrale Kenner" wie "$init_done" oder "%defs" unterbringen oder organisieren?

Siehe PBP 73-79.

Man benutzt lexical variables und dann eben subroutinen, die diese exportieren. Idealer weise natürlich zwischen gekapselten Namespaces.
Es gilt in etwa die folgende Hierarchie.

my im block
my außerhalb des Blocks (modulglobal a.k.a. lexical scope)
<---- hier in etwa ist die G'schwerl Grenze
our (package Variable)
use var
use var & gleicher Namespace  <---- das benutzt FHEM

Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16312
Antw:perl -c - Ausgabe abhängig von Perl-Version (Bsp.: RandomTimer)?
« Antwort #6 am: 25 März 2020, 18:22:17 »
Nun denn, ich schätze auch eher eine plakative Sprache und kann daher verkraften, wenn es für die eine "absolute Notwendigkeit" ist... Mein Eindruck ist  der, dass du damit auch unnötigerweise einige Türen zuschlägst, was nicht in unser aller Interesse ist. Das wollte ich halt losgeworden sein.

Nun ist es leider so, dass das fragliche Buch grade nicht zufällig auf meinem Schreibtisch rumliegt, wenn ich etwas Muße habe, ziehe ich mir vielleicht die 6h Video mal rein, aber im Ernst: Beide Varianten würde ich nicht mal ansatzweise verstehen, nehme ich jedenfalls mal an.

Was mir hilft, sind Beispiele, mal sehen, wann wir dazu kommen, das irgendwie in was konkretes umzumünzen. Du kannst gerne den Parallelthread zu RandomTimer mit nutzen, um das als "Beispielmodul" weiter auch in diese Richtung zu optimieren.
(Gerne auch mit dem Prototype-Ding, obwohl das vermutlich nicht der Burner ist, da die Funktionen dort praktisch nur intern verwendet werden).
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:perl -c - Ausgabe abhängig von Perl-Version (Bsp.: RandomTimer)?
« Antwort #7 am: 25 März 2020, 18:57:14 »
Nun denn, ich schätze auch eher eine plakative Sprache und kann daher verkraften, wenn es für die eine "absolute Notwendigkeit" ist... Mein Eindruck ist  der, dass du damit auch unnötigerweise einige Türen zuschlägst, was nicht in unser aller Interesse ist. Das wollte ich halt losgeworden sein.

Ich bin für die proaktiven "Early Adopter" da, die sich von solchen Oberflächlichkeiten nicht beirren lassen. D.h. in ein paar Wochen/Monaten werden von der Sache her genügend Leute auf der gleichen Wellenlänge sein, so dass jemand, dem meine Art nicht behagt dann von jemand anderem an die Hand genommen werden kann.

Dass man es nicht allen recht machen kann ist Dir sicher klar. Ich kommuniziere halt so und wenn ich versuchen würde das zu kaschieren, kann ich gleich aus Erfahrung sagen, dass das früher oder später so richtig in die Hose geht. Wer mit Wertungen (Judging) ein Problem hat...

Seit ungefähr 20 Jahren lande ich bei diversen Psychotests 100% auf INTJ. Rate mal, wofür das J steht. Erschiess mich halt. ;-)
https://www.16personalities.com/intj-personality


Zitat
Nun ist es leider so, dass das fragliche Buch grade nicht zufällig auf meinem Schreibtisch rumliegt, wenn ich etwas Muße habe, ziehe ich mir vielleicht die 6h Video mal rein, aber im Ernst: Beide Varianten würde ich nicht mal ansatzweise verstehen, nehme ich jedenfalls mal an.

Man darf ja nicht direkt verlinken, weil sonst das OLG Hannover gleich auf der Matte steht, daher verlinke ich auch nicht aufs PDF, aber wenn man mit offenen Augen durchs Internet geht, dann findet man schon ab und zu was. ftp://ftp.happy.kiev.ua/pub/doc/

Doch doch - PBP sind praktisch nur Beispiele + erläuternder Text.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.