Thread 1..3 an Subroutine (8 answers)
Opened by havi at 2009-09-25 10:58

sid burn
 2009-09-25 11:46
#126210 #126210
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Quote
Was spricht gegen Prototypen?

Rennee sagte ja schon etwas. Bei OOP wirkt sie sowieso nicht, daher sind sie dort nutzlos.

Und bei normalen Prozeduralen Code verhindern Prototypen z.B: soetwas.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
sub func ($$$$$) {
print join("\n", @_), "\n";
}

func(1,2,3,4,5); # geht
func(1..5); # geht nicht

my @args = (1 .. 4);
func(@args, 5); # geht auch nicht
func(@args, 6); # geht auch nicht


Es gibt zwar sinvolle Anwendungsmöglichkeiten, wie im Link beschrieben von renee. Zielt man allerdiengs nicht auf soetwas ab z.B. funktionen aussehen zu lassen wir "built-ins" dann sollte man Prototypes weg lassen.


Wenn du OOP und Moose nutzt und vernünftige Methoden Signatures haben möchtest dann solltest du dir mal MooseX::Method::Signatures anschauen.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread 1..3 an Subroutine