Guten Abend,
möchte in meiner my_Utils folgenden Befehl ausführen:
my $eventDate = ReadingsVal($device,"t_00$j_bdate",0);
Das "t_00$j_bdate" soll wie folgt interpretiert werden: t_001_bdate
Also in $j steht die die 1.
Ist dieses so korrekt?
Zitat von: darkon am 07 Februar 2017, 20:44:24Ist dieses so korrekt?
Probier's doch einfach aus!
Gruß,
Thorsten
Ich erhalte die Fehlermeldung:
Bareword "Termine_Dominik" not allowed while "strict subs" in use at (eval 253101) line 1.
Mein kompletter Code sieht wie folgt aus:
sub
Kalender_Tage($)
{
my($device)=@_;
my $t = time;
my $dayDiff;
for(my $i=0; $i<10; $i++)
{
$dayDiff = -1; #BUG behoben
my $j=$i+1;
my $eventDate = ReadingsVal($device,"t_00$j_bdate",0);
my $dayDiffNeu = floor(($eventDate - $t) / 60 / 60 / 24 + 1);
if ($dayDiffNeu >= 0 && ($dayDiffNeu < $dayDiff || $dayDiff == -1)) #BUG behoben
{
$dayDiff = $dayDiffNeu;
}
fhem("setreading $device t_00$j_time $dayDiff");
}
}
Zitat von: darkon am 07 Februar 2017, 20:54:56
Bareword "Termine_Dominik" not allowed while "strict subs" in use at (eval 253101) line 1.
Das hat aber nichts mit dem gezeigten Code zu tun.
Gruß,
Thorsten
Zitat von: darkon am 07 Februar 2017, 20:44:24
Guten Abend,
möchte in meiner my_Utils folgenden Befehl ausführen:
my $eventDate = ReadingsVal($device,"t_00$j_bdate",0);
Das "t_00$j_bdate" soll wie folgt interpretiert werden: t_001_bdate
Also in $j steht die die 1.
Ist dieses so korrekt?
So nimmt Perl an dass "$j_bdate" die komplette Variable ist.
Richtig so:
my $eventDate = ReadingsVal($device,"t_00".$j."_bdate",0);
Gruß
Dan