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 ofpackage 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. |