perl - 如何通过方法返回的引用将哈希元素插入到字符串中?

标签 perl hash reference

我想插入对字符串的哈希引用,但此方法不起作用。
一个如何插值$self->Test->{text} ?

# $self->Test->{text} contains "test 123 ok"
print "Value is: $self->Test->{text} \n";   # but not working

输出:
Test=HASH(0x2948498)->Test->{text} 

最佳答案

方法调用不会在双引号内插入,因此您最终会得到字符串化的引用,后跟 ->Test->{text} .

这样做的简单方法是利用 print 的事实。接受一个参数列表:

print "Value is: ", $self->Test->{text}, "\n";

您还可以使用串联:
print "Value is: " . $self->Test->{text} . "\n";

您也可以使用久经考验的 printf
printf "Value is %s\n", $self->Test->{text};

或者你可以使用这个愚蠢的技巧:
print "Value is: @{ [ $self->Test->{text} ] }\n";

关于perl - 如何通过方法返回的引用将哈希元素插入到字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16219401/

相关文章:

java - 使用散列法查找总长度最小的字符串子数组,该子数组包含原始数组中的所有不同字符串

php - 确定以前在实现随机盐时是否使用过密码

java - java中的递归函数用字典填充二叉树

perl - Perl 中相当于 Java 的 Double.doubleToLongBits() 的是什么?

perl - 如何使用 Win32 :API? 将指针传递给 DLL

security - 我的 friend 使用 SHA512 算法对密码进行哈希处理,不加盐。我如何说服他需要加盐?

引用类型的 C++11 成员变量, vector push_back 后的不同行为

perl - 如何调用我在同一个文件中定义的 Perl 包?

xml - 使用 LibXML 和 XPath 查找带冒号的节点(本地命名空间)

c++ - 制作变量列表而不复制它们