IsInt() in 99_Utils.pm

Begonnen von Loredo, 06 April 2014, 23:38:45

Vorheriges Thema - Nächstes Thema

Loredo

Hallo Rudi,

ich schlage vor, folgende kleine Routine mit in 99_Utils aufzunehmen:



sub IsInt {
    defined $_[0] && $_[0] =~ /^[+-]?\d+$/;
}


Damit kann man dann in seinem Perl-Code sehr einfach prüfen, ob eine Variable ein Zahlenwert ist oder nicht.


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

Kann ich gerne aufnehmen, ich wuesste aber gerne, wozu das gut ist.

betateilchen

return 1 if($_[0]=~ y/0-9// == length($_[0]));

Ist aus Perfomancesicht sehr viel schneller.

Aber ob man das wirklich in den 99_Utils braucht? Ich weiss nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Loredo

Zitat von: rudolfkoenig am 07 April 2014, 07:49:10
Kann ich gerne aufnehmen, ich wuesste aber gerne, wozu das gut ist.


Ich prüfe damit in Modulen Benutzereingaben ab, ob diese tatsächlich einer Zahl entsprechen, bevor ich damit rechne.
Ich dachte mir, das nutzt sicherlich auch der ein oder andere in seiner MyUtils.pm oder in Modulen. Daher mein Vorschlag.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

@Loredo: Ich halte es zwar nicht fuer weltbewegend, aber habs eingecheckt da es kurz ist, und vermutlich niemanden stoert.
@betateilchen: Hast du Zahlen dafuer, dass deine Version schneller ist? Da sie negative Werte ignoriert, habe ich Loredos Variante eingecheckt.

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!