Thread Subroutinen überschreiben (4 answers)
Opened by Kean at 2011-11-18 15:23

pq
 2011-11-18 15:49
#154301 #154301
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ja, man kann subroutinen überschreiben.
idealerweise muss man das nicht und kann es z.b. mittels objektorientierung lösen, aber wenn du keine wahl hast, dann so (am beispiel der param()-methode von CGI):
Code (perl): (dl )
1
2
3
4
5
6
7
no warnings "redefine";

# entweder
*CGI::param = sub { ... };

# oder
sub CGI::param { ... }


ersteres ist flexibler, weil es eine anweisung ist, die du überall machen kannst, und wenn du willst, auch mit variablem subnamen (dann musst du aber strict ausschalten).
zweiteres ist wie eine ganz normale subroutinendefinition in einem package und wird zur compilezeit ausgeführt.
Last edited: 2011-11-18 15:50:39 +0100 (CET)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Subroutinen überschreiben