Thread Duplikate finden und entfernen
(25 answers)
Opened by Tom at 2008-02-15 20:42 Struppi+2008-05-06 14:44:16-- Linuxer hat dazu ja schon einiges gesagt. Also Grundsätzlich habe ich das aus PBP übernommen und die Gründe warum stimme ich auch zu. (Deswegen habe ich es übernommen) Sagen wir mal du erweiterst deinen Code später irgendwann. Und fügst indrinnen nochmals eine Schleife hinzu. Spätestens dann musst du nachträglich die Label sowieso hinzufügen. Solltest du es vergessen wird dein Programm garnicht oder falsch laufen. Die andere Wirkung ist wenn du vor einer Schleife ein Label siehst weißt du automatisch das eine Abbruchbedienung vorhanden ist. Naja und das überflüssig wurde ja auch schon gesagt. Du kannst natürlich auch sagen das ein "my ($user, $password) = @_" überflüssig ist weil du ja direkt auch auf $_[0] und $_[1] darauf zugreifen kannst. ;) Es hat also auch mit Lesbarkeit in der Schleife zu tun. Wenn du "next MD5_64KB" siehst weist du auch automatisch welche Schleife übersprungen wird. Du musst dir relativ wenig also mercken oder erstmal schauen welche Schleife den nun genau abgebrochen wird. Da alle Infomration schon auf der Zeile stehen. Durch das explizite ist es letztendlich leichter verständlich und besser lesbar. Ich zeig dir das mal anhand einem Beispiel in Python udn Perl. In Python legt man ja in der Regel nicht so wert auf Lesbaren Code... Python: (schlecht) variable1 + variable2 (addition, string concatanation oder exception?) variable1 + variable2 (addition, string concatanation oder exception?) Perl: (gut) $variable1 + $variable2 ( addition) $variable1 . $variable2 (string concatanation) Durch die explizite Trennung von addition und concatanation weißt du in dem Beispiel auch sofort was genau passiert. Und du musst es im Gegensatz zum Python Vergleich nicht erraten oder erstmal wieder nach oben schauen von welchen typ die variablen sind. Beim next halt das selbe. Du weißt sofort es gibt eine abbruch bedienung, und bei einem next weißt du sofort was übersprungen wird. ohne das du den Scope erstmal genauer betrachten musst. ;) Quote naja zu eval() musst du aber Wissen das es zwei unterschiedliche evals gibt. Einmal String eval und einmal Block eval. Ein Block eval macht aber etwas völlig anderes. Eigentlich hätte es anders heißen müssen. Ansonsten ist eval() auch nicht böse, auch wenn es immer behauptet wird. Es kommt drauf an was du damit tust. Nutzt du keine Usereingaben im eval() kannst du mit eval() auch viel gutes anstellen was kein bisschen Sicherheitskritisch ist. Allerdiengs gibt es für viele Sachen auch andere Möglichkeiten die man nutzen könnte die dann "besser" sind. Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|