You do a require "wrapper" in package demo and in package demo2. demo2 is used by demo. The use means, that demo2 is compiled and executed before demo is even compiled to end.
The docs for require state, that require doesn't include a file twice.
So, wrapper is already loaded via demo2, so it lives in demo2. The require in demo just returns 1, no file is loaded. You'll see that your code works if you change call_httpd_exec in demo to demo2::call_httpd_exec.
<update>
OTOH, if you wrap require "wrapper" in demo into a BEGIN block and place it before use demo2, then the call to call_httpd_exec will fail in demo2, since it now lives in demo.
Read require, use, again perltoot, perlmod, there BEGIN , CHECK, INIT and END... there are also modules which implement automatic exportation of functions, e.g. Spiffy.
</update>
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
In reply to Re^3: problem with repeating function
by shmem
in thread problem with repeating function
by mrguy123
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |