Thread dateien löschen (25 answers)
Opened by DerVersuch at 2010-01-14 22:01

Gast anon
 2010-01-15 12:39
#130556 #130556
„Jibt für allet 'n erstet Mal.“

Da du als Experte bereits die Risiken von $1 kennst und wir sie nicht breitwalzen brauchen, sollte doch der Schluss naheliegen, dass mittels direkter Zuweisung der komplette Verzicht auf $1 kein Risiko birgt‽ Wenn einem defensive Programmierung am Herzen liegt, fällt die Entscheidung zwischen den Möglichkeiten nicht schwer.

Andere Gründe, auf $1 zu verzichten:
  • Die Gültigkeitsabfrage (gerne unterschlagen, siehe viele Codebeispiele in diesem Forum) kann direkt dort verwendet werden, wo die Handlung geschieht.
    Code (perl): (dl )
    1
    2
    3
    4
    5
    
    if (my (@captures) = $expr =~ /regex/) {
        # do something with @captures
    } else {
        # did not match
    }
    Vergleiche das mit der Verwendung von $1, wo die Abfrage erst später kommt und gar nicht dort hingehört.
  • Bei Veränderungen der Reihenfolge oder Anzahl der Captures braucht man nicht so viel Aufwand mit der Wartung.
  • Immer, wenn ein Pythonista so ein $1 liest, lacht er innerlich, wie rückständig Perl doch ist. (Python hatte benannte Captures, die ganz offensichtlich besser in der Handhabung sind, wesentlich länger als Perl.) Als Anhänger von Perl sollte man moderne Praktiken propagieren, um Zusammenhalt und Mindshare für die Zukunft zu sichern; wir kriegen schließlich nicht Millionen Dollar von Sugardaddy Google in den Arsch geblasen.

View full thread dateien löschen