package SSH; has username => (is => 'rw', isa => 'Str'); sub connect { [...] $self->send($self->username); } package Client; extends qw(SSH); has username => (... default => 'admin'); package Server; extends qw(SSH); has username => (... default => 'root'); package main; my $client = Client->new(); my $server = Server->new(); $client->connect(); $server->connect();