String Perl从引用创建哈希

String Perl从引用创建哈希,string,perl,hash,reference,String,Perl,Hash,Reference,我有一个包含哈希引用的字符串,例如: my $string = "HASH(0x5602d43a7648)"; 如何从该引用访问哈希并打印出其值和键?不行,太晚了 如果变量包含引用,则可以取消引用,但: my $hash_ref = { a => 42 }; my %hash = %{ $hash_ref }; 但一旦你将其严格化,就没有办法: my $string = "$hash_ref"; 要在哈希或“哈希哈希(HoH)”中创建哈希,请使用引用,而不是字符串: my %hash

我有一个包含哈希引用的字符串,例如:

my $string = "HASH(0x5602d43a7648)";

如何从该引用访问哈希并打印出其值和键?

不行,太晚了

如果变量包含引用,则可以取消引用,但:

my $hash_ref = { a => 42 };
my %hash = %{ $hash_ref };
但一旦你将其严格化,就没有办法:

my $string = "$hash_ref";
要在哈希或“哈希哈希(HoH)”中创建哈希,请使用引用,而不是字符串:

my %hash = ( key1 => { subkey1 => 'val1',
                       subkey2 => 'val2' },
             key2 => { subkey3 => 'val3' } );
print $hash{key1}{subkey2}, "\n";  # val2

不行,太晚了

如果变量包含引用,则可以取消引用,但:

my $hash_ref = { a => 42 };
my %hash = %{ $hash_ref };
但一旦你将其严格化,就没有办法:

my $string = "$hash_ref";
要在哈希或“哈希哈希(HoH)”中创建哈希,请使用引用,而不是字符串:

my %hash = ( key1 => { subkey1 => 'val1',
                       subkey2 => 'val2' },
             key2 => { subkey3 => 'val3' } );
print $hash{key1}{subkey2}, "\n";  # val2

嘿,非常感谢你的回答。变量包含一个较长字符串中的引用,而变量本身是散列中键的值。所以它有点像散列中的散列,但是当我从字符串中删除所有其他字符并尝试像您那样取消对它的引用时:我的%hash=%{$string};(其中字符串仅包含“HASH(0x5602d43a7648)”)我得到一个错误。我只是想在散列中加入散列。嘿,非常感谢你的回答。变量包含一个较长字符串中的引用,而变量本身是散列中键的值。所以它有点像散列中的散列,但是当我从字符串中删除所有其他字符并尝试像您那样取消对它的引用时:我的%hash=%{$string};(其中字符串仅包含“HASH(0x5602d43a7648)”)我得到一个错误。我只是想把散列放在散列中。看到了吗