如何将 perl 哈希字符串引用转换为 perl 哈希引用

how to convert the perl hash string reference to perl hash reference

 HASH(0x991f0dc)

所以上面的哈希引用作为字符串存储在标量变量中,如果我们 在它抛出错误的 Perl 程序中用“%”取消引用它,

Can't use string ("HASH(0x991f0dc) ") as a HASH ref while "strict refs" in use at tcpclient1.pl line 49, <GEN0> line 1

以上是 Perl 程序抛出的问题,我请求解决方案,将哈希字符串引用转换回 Perl 哈希引用。

你无法将其转换回来

HASH(0x991f0dc) 不是哈希引用。它是变量的字符串表示形式,其中包含对该地址处哈希的引用。您在取消引用时描述的错误消息指出您有类似的内容:

my $foo = 'HASH(0x991f0dc)';
print %$foo;

现在这行不通了,因为实际的数据结构不存在。

看起来您是通过套接字获得的,您通过 GEN0 文件句柄读取了套接字。谁发给你那个数据结构的人做错了什么。

他们需要序列化数据,然后你需要反序列化它回来。一个好的方法是 JSON. But you could also use Storable, or Sereal.