in reply to Re^2: PERL modules named differently than the package won't export
in thread PERL modules named differently than the package won't export

I see. I guess that makes (some) sense.

How about this approach, then:

As Eliya mentioned, use Utils1; is equivalent to

BEGIN { require Utils1; Utils1->import; }
You should, therefore, be able to make the import from the Utils package transparent by editing Utils1.pm to do something along the lines of
package Utils1; sub import { Utils->export_to_level(1, @_); } package Utils; ...
This will (assuming I remembered the incantation correctly) make Utils1->import equivalent to Utils->import.


Although, really, the better approach would likely be to put the two versions of Utils.pm into different library directories (e.g., /usr/local/devel/Utils.pm and /usr/local/stable/Utils.pm), then manipulating @INC (by setting PERL5LIB in the shell or with use lib in the code) so that each program will load the appropriate version.