sub UNIVERSAL::subpackage { join '::', @_ } package Foo::Command; sub wow { print "I am: ", __PACKAGE__, "\n" } package Foo; sub check { __PACKAGE__->subpackage( 'Command' )->wow() } package main; Foo->check(); __END__ I am: Foo::Command