Thread happy birthday mailer
(18 answers)
Opened by mika at 2011-02-02 22:49
Da mögen sich die Geister dran scheiden. Die gefundene Lösung ist gut.
Nur weil man Dinge mit Regulären Ausdrücken lösen kann, muss man das nicht gleich tun ;) Gerade so einfache Sachen wie hier sind genau die Sachen, wofür es substr() und andere Funktionen gibt. Was im Zweifelsfall "besser" ist, kann man beispielsweise durch Benchmarks ermitteln: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #! /usr/bin/perl # vim:ts=4 sw=4 sts=4 et nu fdc=3: use strict; use warnings; use Benchmark qw( cmpthese ); my $date1 = '2010-08-24'; # my $date2 = '2009-13-22'; # invalid date, but who cares #> sub routines #> ---------------------------------------------------------------------------- sub strcmp1 { my ($d1,$d2,$p,$l) = @_; substr($d1,$p,$l) ne substr($d2,$p,$l) } #> main script #> ---------------------------------------------------------------------------- cmpthese( -1, { direct => sub { substr($date1,5,5) ne substr($date2,5,5) }, regex => sub { ($date1=~/^.....(.{5})/)[0] ne ($date2=~/^.....(.{5})/)[0] }, sub1 => sub { strcmp1($date1,$date2,5,5) }, }); __END__ Mein Ergebnis: Code: (dl
)
1 Rate regex sub1 direct meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |