Hauptmenü

Problem mit $mday

Begonnen von Kharim, 13 März 2016, 17:14:46

Vorheriges Thema - Nächstes Thema

Kharim

Hallo Zusammen,

wahrscheinlich stehe ich mal wieder total auf dem Schlauch  ::) ::) ::)

ich möchte innerhalb einer Funktion in meiner 99_myUtils.pm eine Abfrage (if($mday==1)) durchführen.
Beim Speichern der .pm bekomme ich folgende Meldung:
"Global symbol "$mday" requires explicit package name at ./FHEM/99_myUtils.pm line 34."

Ich kann mich entsinnen, $mday in anderen FHEM Installationen schon innerhalb von Notifys genutzt zu haben - ohne Probleme.
Aber wenn ich es recht bedenke, befinde ich mich hier mit der 99_myUtils und den Funktionen direkt auf Perl-Ebene?

Muss ich hier etwas anders/Besonderes machen um $mday nutzen zu können?


Danke,
Kharim
Raspberry Pi 2 + Minibian + 2x MAX Cube CUN (868/433Mhz) + Thermostate + Fensterkontakte + Taster+RGB-LED Band über pigpiod + TFA Sensoren 30.3169/3125
Raspberry Pi 2 + Minibian +Z-Wave (USB) + Bewegungsmelder + Fensterkontakt + Sirene + SMS Steuer-/Benachrichtigung (ohne Internet)

Ellert

Aus der Commandref:
Zitatfür die Verwendung in PERL-"oneliners" eingeführt

Daher musst Du Dir $mday selber machen, s. http://perldoc.perl.org/functions/localtime.html

Kharim

Sorry, was genau muss ich machen?

Wenn ich " ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);" eintrage, wird die Fehlermeldung noch schlimmer;

Global symbol "$sec" requires explicit package name at ./FHEM/99_myUtils.pm line 25. Global symbol "$min" requires explicit package name at ./FHEM/99_myUtils.pm line 25. Global symbol "$hour" requires explicit package name at ./FHEM/99_myUtils.pm line 25. Global symbol "$mday" requires explicit package name at ./FHEM/99_myUtils.pm line 25. Global symbol "$mon" requires explicit package name at ./FHEM/99_myUtils.pm line 25. Global symbol "$year" requires explicit package name at ./FHEM/99_myUtils.pm line 25. Global symbol "$wday" requires explicit package name at ./FHEM/99_myUtils.pm line 25. Global symbol "$yday" requires explicit package name at ./FHEM/99_myUtils.pm line 25. Global symbol "$isdst" requires explicit package name at ./FHEM/99_myUtils.pm line 25. Global symbol "$mday" requires explicit package name at ./FHEM/99_myUtils.pm line 35.

Füge ich nun noch: " use Time::localtime;" ein ist mein gesamtes FHEM nicht mehr ereichbar  :o :o :o :o

Danke,
Kharim
Raspberry Pi 2 + Minibian + 2x MAX Cube CUN (868/433Mhz) + Thermostate + Fensterkontakte + Taster+RGB-LED Band über pigpiod + TFA Sensoren 30.3169/3125
Raspberry Pi 2 + Minibian +Z-Wave (USB) + Bewegungsmelder + Fensterkontakt + Sirene + SMS Steuer-/Benachrichtigung (ohne Internet)

franky08

Hier mal ein Beispiel aus einer sub von mir, daraus solltest du den Code für deine Anwendung ableiten können:

sub datumdummy()

{

my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
    $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
my $CTIME_String = localtime(time);
$Monat += 1;
$Jahrestag += 1;
$Jahr += 1900;

my @Wochentage = qw(Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag);
my @Monatsnamen = qw(Januar Februar März April Mai Juni Juli August September Oktober November Dezember);


my $datum_2 = sprintf("%s %2d. %s% 04d",
   $Wochentage[$Wochentag],
   $Monatstag,
   $Monatsnamen[$Monat-1],
   $Jahr,
);

fhem "setreading datum_dummy state $datum_2";
#return ($datum_2);

}


VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

betateilchen

Zitat von: Kharim am 13 März 2016, 18:33:39
Wenn ich " ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);" eintrage, wird die Fehlermeldung noch schlimmer;

Syntaxfehler... probier mal

my  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Kharim

Zitat von: betateilchen am 13 März 2016, 19:01:31
Syntaxfehler... probier mal

my  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

Man mag über BETA Software sagen was auch immer mal will,
aber was so ein betaTEILCHEN macht, das funktioniert auch eben!!

Dank Dir!!

Kharim
Raspberry Pi 2 + Minibian + 2x MAX Cube CUN (868/433Mhz) + Thermostate + Fensterkontakte + Taster+RGB-LED Band über pigpiod + TFA Sensoren 30.3169/3125
Raspberry Pi 2 + Minibian +Z-Wave (USB) + Bewegungsmelder + Fensterkontakt + Sirene + SMS Steuer-/Benachrichtigung (ohne Internet)