package MyTest; use Data::Dumper; sub import { warn Dumper \@_; } package main; BEGIN { # code to keep use and require for complaining # that there is no MyTest.pm file $INC{'MyTest.pm'} = 'testfile'; } sub handle_error{ die; } use MyTest +autodispatch => proxy => 'use'; BEGIN { require MyTest; MyTest->import( +autodispatch => proxy => 'require', ); } MyTest->import( '+autodispatch' => proxy => 'require as string', );