实际上有两个(几乎?)类似的问题。
%something
和%{$something}
有什么区别?
%{$hashvar{xyz}}
和%hashvar{xyz}
有什么区别?
答案 0 :(得分:4)
%something
表示something
是哈希变量,%{$something}
表示$something
是包含对哈希引用的标量变量
%{$hashvar{xyz}}
表示$hashvar{xyz}
(与哈希xyz
中的键hashvar
相关联的值)是哈希引用
从Perl 5.20开始,%hashvar{xyz}
为key/value hash slice,将返回'xyz'
和$hashvar{xyz}
;在此之前,这是一个语法错误。
参考文献:
perldata - Perl data types
perldsc - Perl Data Structures Cookbook