package Foo::Utils { sub frobnicate { shift; # ignore invocant print "frobnicating!\n"; } } ...; # some time later my $utils = "Foo::Utils"; # no need for a constructor ...; # some time later $utils->frobincate; # call as a class method #### package Foo::Utils { sub new { bless [], shift } sub frobnicate { shift; # ignore invocant print "frobnicating!\n"; } } #### package Foo::Utils { use Moo; sub frobnicate { shift; # ignore invocant print "frobnicating!\n"; } }