如何通过网络套接字发送perl哈希?

如何通过网络套接字发送perl哈希?,perl,networking,serialization,Perl,Networking,Serialization,我正在开发一个由服务器和多个客户端组成的工具。 客户端创建需要通过网络套接字发送到服务器的散列 我认为nstore是正确的做法,但我找不到在服务器上检索数据的方法 有人能告诉我怎么做吗 问候尼克 PS:我知道我可以以某种字符串格式编写数据并在服务器上重新构建,但我想知道这是否可以避免。您可以将data::Dump和eval结合起来。其思想是序列化数据结构(哈希)、传输和解码(评估): 您可以将Data::Dump和eval组合起来。其思想是序列化数据结构(哈希)、传输和解码(评估): 发送: 检

我正在开发一个由服务器和多个客户端组成的工具。 客户端创建需要通过网络套接字发送到服务器的散列

我认为nstore是正确的做法,但我找不到在服务器上检索数据的方法

有人能告诉我怎么做吗

问候尼克


PS:我知道我可以以某种字符串格式编写数据并在服务器上重新构建,但我想知道这是否可以避免。

您可以将data::Dump和eval结合起来。其思想是序列化数据结构(哈希)、传输和解码(评估):


您可以将Data::Dump和eval组合起来。其思想是序列化数据结构(哈希)、传输和解码(评估):

发送:

检索:

my $ref = Storable::fd_retrieve( $socket );
我想这就是你所需要的。如果您不知道如何创建套接字,或者没有启动套接字的协议,我认为这是一个更紧迫的问题。关于前者,请参见。

发送:

检索:

my $ref = Storable::fd_retrieve( $socket );

我想这就是你所需要的。如果您不知道如何创建套接字,或者没有启动套接字的协议,我认为这是一个更紧迫的问题。请参阅前者。

作为已发布解决方案的替代方案,您可以使用或。

作为已发布解决方案的替代方案,您也可以使用或。

您是否可以调用
Storable::retrieve
Storable::fd_retrieve
?我会说“我知道我应该序列化数据”,而不是“可以以某种方式写入数据…”您是否可以直接调用
Storable::retrieve
Storable::fd_retrieve
?我会说“我知道我应该序列化数据”,而不是“可以以某种方式写入数据…”这可能会解决问题,但如果安全性只是有点重要,或者可能会变得重要(对于大多数项目来说都是如此)您绝对不应该这样做。这样,任何人都可能会将任意Perl代码注入您的服务器并在您的会话中运行它…-1,
eval STRING
对于通过网络发送的数据来说从来都不是有效的选项。这可能会解决问题,但如果安全性只是稍微重要一点,或者可能变得更重要(对于大多数项目来说都是如此)您绝对不应该这样做。这样,任何人都可能将任意Perl代码注入您的服务器,并在您的会话中运行它…-1,
eval STRING
对于通过网络发送的数据来说从来都不是有效的选项。谢谢!这就是我要找的,我试图在没有fd的情况下使用nstore…谢谢!这就是我要找的,我没有正在尝试在没有fd的情况下使用nstore。。。
my $ref = Storable::fd_retrieve( $socket );