You are posting far too much code. Please reduce it to something that still reproduces the problem but is much shorter.
My guess is that one of your modules exports a subroutine new. As there is no way that I see that one of the modules you show is exporting a subroutine named new, it must be the LoadProperties module that exports a subroutine new. This triggers (rightfully) the warning about redefining that subroutine later on in Search2.
Also, what coding style is this and what problem is it supposed to solve:
BEGIN { ... @DB::EXPORT_OK = qw(new say_hello); ... }
The DB package is magic and reserved for the Perl debugger. Exporting symbols is usually done through global variables in the package doing the exporting. Methods of an object should not be exportable at all in any case. In my opinion, only your SharedVariables module should export its shared variable names, and none of the other modules should export anything.
In reply to Re: Subroutine new redefined
by Corion
in thread Subroutine new redefined
by *alexandre*
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |