From: "Paul Murphy" <muffskiz@hotmail.com> > Is there a particular way I have to implement this? I have the > following code but it runs the normal getproto rather than my one. > > -------------------------------------- > #/bin/perl -w > You have to put a BEGIN{} block around the subroutine definition and "instalation: BEGIN { sub my_getprotobyname { print "hello\n"; } *CORE::GLOBAL::getprotobyname = \&my_getprotobyname; } print "Going to function\n"; my @test = getprotobyname("tcp"); print @test; Sorry I forgot about that before (I've always did things like this in a module's import() function which is called within execution of use statements which means it behaves kind of as if it was in a BEGIN{} block.) The reason is ... you have to replace the function BEFORE perl parses and compiles the calls to it. I guess it would be best to put the functions into a module and replace the core functions in an import : package Fake::Getprotos; sub my_getprotobyname { print "hello\n"; } ... sub import { *CORE::GLOBAL::getprotobyname = \&my_getprotobyname; ... } 1; Just make sure that module is the first to be used. Jenda =========== Jenda@Krynicky.cz == http://Jenda.Krynicky.cz ========== There is a reason for living. There must be. I've seen it somewhere. It's just that in the mess on my table ... and in my brain. I can't find it. --- meThread Previous | Thread Next