Currently I only have the SSH module and now Server / Client "is" a SSH connection. The benefit of that is that I can just do things like:
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();
It's automatically using the correct username, because I'm overwriting this attribute of the SSH class in Client and Server. So, the point is, with SSH alone it works perfectly fine. I just have trouble adding the Socket alternative.