foo.pl use BtApp; BtApp->runFoo; bar.pl use BtApp; BtApp->run( mode => 'Bar', @ARGV ); baz.pl use BtApp; BtApp->run( '--mode=Baz' , @ARGV ); btapp.pl use BtApp; BtApp->cli( @ARGV ); beep.pl use BtApp; BtApp->cli( beep => @ARGV ); ... BtApp.pm BtApp/Command/Baz.pm BtApp/Bar.pm BtApp/Beep.pm t/00-load.t t/command/baz.t t/bar.t t/baz.t t/beep.t ...