use strict; use warnings; use Data::Dumper; use Storable qw(nfreeze); use IO::Socket::SSL; while (1) {   my $socket = IO::Socket::SSL->new(      Listen => 5,      LocalAddr => 'localhost',      LocalPort => 9000,      Proto     => 'tcp',      Reuse     => 1,      SSL_verify_mode => 0x01,      SSL_passwd_cb => sub {return "bluebell"},   ) or die "unable to open socket over localhost:9000";   while (my $client = $socket->accept()) {      chomp (my $request = <$client>);      next unless $request;      print "Request: $request\n";      my $stats = {         'memstats' => {            'Cached' => '164352',            'MemTotal' => '1035972',            'SwapUsed' => '0',            'Buffers' => '79600',            'SwapUsedPer' => '0.00',            'MemUsed' => '377636',            'SwapTotal' => '2096472',            'MemUsedPer' => '36.45',            'SwapFree' => '2096472',            'MemFree' => '658336'         }      };      my $p2s = nfreeze($stats) or die $!;      print $client $p2s;      close($client);      close($socket);      system("mknod ./myfifo p") unless -e './myfifo';      open my $fh, '>>', './myfifo', or die $!;      print $fh $p2s;      close $fh;   } }