Thread Zahlen in Worten
(9 answers)
Opened by bianca at 2012-01-11 15:25 Code (perl): (dl
)
1 2 3 my $wert=shift; return undef if !defined $wert || $wert=~/[^\d]/; $wert=~s/^0//g while $wert=~/^0/; Ich würde das so schreiben: Code (perl): (dl
)
1 2 3 4 5 6 7 use Scalar::Util; my $wert=shift; return undef unless(defined($wert)); return undef unless(Scalar::Util::looks_like_number($wert)); #$wert=sprintf('%u',$wert); $wert=~s/\D.*$//gs; $wert=~s/^0+//s; Aber ich weiß nicht, was du gegen Module hast. Wollte ich es richtig verwenden würde ich ein Modul mit Exporter schreiben und "zifferzuwort" exportieren. Die Funktion, die du erstellst hast, erzeugt jedes mal den Hash mit den Werten neu, wenn sie aufgerufen wird. Das ist nicht sonderlich effizient. Weiterhin sind die Funktionen _hundert und _zehn um gesamten Scope verfügbar, dass kann unter Umständen zu Problemen führen wenn sie irgendwo redefiniert werden. Aber ansonsten mach was du für richtig hältst. Der Code steht unter der IMGEL. (Ist Mir Ganz Egal Lizenz). ;-) EDIT: sprintf kommt mit großen zahlen nicht klar. Last edited: 2012-01-15 18:06:11 +0100 (CET) |