$ perl
use strict;
my $o= new My::Module;
^D
Can't locate object method "new" via package "My::Module"
$ perl
use strict;
sub new;
my $o= new My::Module;
^D
Bareword "My::Module" not allowed while "strict subs" in use
$ perl
use strict;
BEGIN {
$My::Module::VERSION= 1.0;
}
sub new;
my $o= new My::Module;
^D
Can't locate object method "new" via package "My::Module"
$
####
use autouse My::Module => qw(new);
####
sub My::Module::new {
require My::Module;
undef &My::Module::new;
goto &My::Module::new;
}