From: "Paul Murphy" <[EMAIL PROTECTED]>
> 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
=========== [EMAIL PROTECTED] == 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.
--- me
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]