package Foo; use Moose; use Sub::Exporter -setup => {exports => [qw(procedure1 procedure2)]}; # OO stuff comes here has some_attribute … sub some_method { my ($self, @args) = @_; … } # procedural stuff comes here sub procedure1 { my $self = __PACKAGE__->new; # if needed my @args = @_; … } sub procedure2 { my $self = __PACKAGE__->new; # if needed my @args = @_; … } 1;