Das erste finde ich einfacher zu schreiben.
Der Unterschied zwischen den beiden ist, dass beim ersten die Einträge in
@_ drin bleiben, während beim zweiten
@_ hinterher leer ist.
Bei OO-Programmierung bevorzuge ich die folgende Schreibweise:
sub foo {
my $this = shift;
my ($x, $y, $z) = @_;
Hierbei wird
@_ nicht ganz geleert, sondern nur ein Argument daraus entfernt. Das ist praktisch, wenn man redispatchen möchte:
Ferner sollte man sich (auch in Beispielcode) angewöhnen,
$a und
$b nicht als Variablen zu benutzen, da die Namen für "sort" reserviert sind.