我正在开发一个由服务器和多个客户端组成的工具。 客户端创建需要通过网络套接字发送到服务器的哈希。
我认为 nstore 是正确的做法,但我找不到在服务器上检索数据的方法。
有谁能告诉我如何正确地做到这一点?
问候尼克
PS:我知道我可以用某种字符串格式写入数据并在服务器上重建它,但我想知道是否可以避免这种情况。
答案 0 :(得分:6)
发送:
Storable::nstore_fd( \%hash, $socket );
提取:
my $ref = Storable::fd_retrieve( $socket );
我认为这就是你所需要的。如果您不知道如何创建套接字 - 或者没有协议来启动它 - 那是一个更紧迫的问题,我想。有关前者,请参阅IO::Socket::INET
。
答案 1 :(得分:5)
答案 2 :(得分:-3)
你可以组合Data :: Dump和eval。我们的想法是序列化您的数据结构(哈希),传输和解码(评估):
$a = { ... }
$serializable_a = Data::Dump::dump($a)
# transmit && receive
$a_clone = eval( $serializable_a_received ) ;