Thread Kreditkarten Maskierung via RegEx (12 answers)
Opened by marcus74 at 2015-02-17 16:19

betterworld
 2015-02-17 17:01
#179710 #179710
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Quote
Code (perl): (dl )
unlink $filename while -f $filename;

Das ist ja auch mal ein cooles Konstrukt, was ich noch nicht gesehen habe :)

Warum hier eine Schleife? Falls die Datei nicht gelöscht werden kann, wie z.B. bei Berechtigungsproblemen, wird sich dein Programm in eine Endlosschleife hängen.

Und wo wir bei überflüssigen Schleifen sind: Hast du tatsächlich mehrere Kreditkartennummern pro Zeile? Ansonsten würde ich mir auch die andere Schleife sparen mit dem regulären Ausdruck. Dann kommt man nämlich um das "$1" ganz herum. Die Probleme mit dem "$1" hat Raubtier ja schon angesprochen: In Perl 5 ist es leider so, dass diese Variable global ist und z.B. nach einem Library Call nicht mehr den alten Wert haben muss. Hier also ohne Schleife:
Code (perl): (dl )
1
2
3
4
my ($creditcard) = $row =~ /(3[47]\d{13})/
    or next; # In der nächsten Zeile weitermachen

if (is_valid($creditcard)) {...}

View full thread Kreditkarten Maskierung via RegEx