Perl - Socket Client que pegue de volta o valor enviado ao Socket Server

Estou desenvolvendo uma aplicação onde eu preciso de um socket client em Perl que, quando executado no navegador, consiga trazer o
que enviou para o servidor.Por exemplo, meu socket client envia uma string “a” para o servidor e o
servidor pega a string “a” enviada pelo cliente, concatena com alguma outra string, como um “b” por exemplo,
e retorna para o cliente o valor “a+b”.

Como já mencionado, esse socket client é executado no navegador, utilizando o ActivePerl para rodar scripts em perl numa página ASP.

Eu estou com problemas para fazer funcionar da forma que eu preciso, pq quando eu tento fazer essa lógica que descrevi acima, o código funciona somente se, no lado servidor, eu primeiro enviar uma resposta para o cliente e depois ler o que ele enviou para o servidor, sendo que na verdade eu preciso do contrário, isto é, eu preciso ler o que ele enviou ao servidor e depois fazer alguma ação (como no exemplo, concatenar o “a” que o client enviou com o “b”) para depois enviar a resposta para o cliente.

esse é o código do socket cliente

#!/usr/local/bin/perl
# file: tcp_echo_cli1.pl
# usage: tcp_echo_cli1.pl [host] [port]
# Echo client, TCP version


use Socket;
use IO::Handle;
my ($bytes_out,$bytes_in) = (0,0);

my $host = '192.168.0.178';
my $port = '7000'; 
my $protocol = 'tcp';

my $msg_out = "A";

$host = inet_aton($host) or
    die "$host: unknown host";

#socket(SOCK, AF_INET, SOCK_STREAM, $protocol) or
socket(SOCK, PF_INET, SOCK_STREAM, $protocol) or
    die "socket() failed: $!";

my $dest_addr = sockaddr_in($port,$host);

connect(SOCK,$dest_addr) or
    die "connect() failed: $!";

#SOCK->autoflush(1);


$Response->Write("Enviando mensagem para o servidor:  <b>$msg_out</b>");
print SOCK $msg_out;

my $msg_in = <SOCK>;
$Response->Write("<br/>MENSAGEM do Servidor: <b>$msg_in</b>");

close SOCK;

Meu socket server foi feito em java e sei que o problema não é nele, pq quando testei ele com um cliente em java (rodando no browser tb) funcionou do jeito que eu precisava.

Valeu!