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):
no warnings "redefine";
*CGI::param = sub { ... };
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)