package App::ImapNotify::Socket::SSL; use v5.24; use strict; use warnings; use autodie; use Function::Parameters; use IO::Socket::SSL; use Log::Any qw($log); method new($class: $host, $port, $deps = {}) { $deps->{sock} //= IO::Socket::SSL->new("$host:$port"); return $class->new_no_defaults($deps); } method new_no_defaults($class: $deps = {}) { my $self = {}; bless $self, $class; $self->{deps} = $deps; return $self; } method readline() { return CORE::readline $self->{deps}->{sock}; } method writeline($line) { print {$self->{deps}->{sock}} $line; } 1; __END__