use strict;
use warnings;
use Data::Dump qw/pp dd/;
use Scalar::Util qw/blessed/;

sub gen_autoload {
    my ( $PKG ) = @_ ;

    return sub {
        my $autoload = do  { no strict; no warnings; $AUTOLOAD };
        warn pp [$PKG, $autoload,\@_]

    }
}

package TST {
    use vars qw/$AUTOLOAD/;
};

package TST2 {
    use vars qw/$AUTOLOAD/;
};

*TST::AUTOLOAD = gen_autoload("TST");
*TST2::AUTOLOAD = gen_autoload("TST");



TST::bla();
TST->meth();
TST2->meth();
