Thread Subroutinen übergabe per shift / @_ (4 answers)
Opened by Neo2k8 at 2010-03-07 22:52

betterworld
 2010-03-08 11:09
#134229 #134229
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
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:
Code: (dl )
1
2
3
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:
Code: (dl )
1
2
  $this->SUPER::foo(@_);
}


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.

View full thread Subroutinen übergabe per shift / @_