对数组、散列等的引用中的十六进制数字表示什么?
当打印对数组、散列等的引用时,括号中的十六进制数字是什么?
perl -e 'print []'
给出如下输出: ARRAY(0x9acb830)
0x9acb830 到底是什么?如果我再次打印相同的引用,这个数字就会改变。
When printing a reference to an array, hash, etc, what is that hexadecimal number in brackets?
perl -e 'print []'
Gives an output like: ARRAY(0x9acb830)
What is 0x9acb830 exactly? If I print the same ref again, this number changes.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果再次打印相同的参考号,数字应该保持不变;该数字是所引用事物的 SV 标头的实际地址。
If you print the same ref again the number should remain the same; the number is the actual address of the SV header for the referred to thingy.
它基本上是数组的存储位置。 Perl 试图让您知道您正在尝试打印引用而不是标量值。
试试这个:
请注意,当我打印引用时,Perl 尝试做正确的事情。它不会尝试打印一些奇怪的值,而是告诉您正在尝试打印标量或数组引用。
It's basically the memory location of the array. Perl is trying to let you know you're trying to print a reference and not a scalar value.
Try this:
Notice that when I print a reference, Perl tries to do the right thing. Instead of attempting to print some strange value, it tells you that you're trying to print a scalar or array reference.