perl hash with fat逗号

use*_*829 2 perl hash

我已经读过在为哈希定义键值时使用胖逗号,我们不需要放置quotes ''键来指示它是一个字符串.然而,我发现,如果我包括quotes在键周围它仍然工作,就好像它忽略了''.

以下声明是否可以安全使用?

$result = { 
     'Bill' => { Java => 56, C => 78, Perl => 90 } , 
     'Mary' => { Java => 82, C => 65, Perl => PX, Python => 72},
};
Run Code Online (Sandbox Code Playgroud)

Eug*_*e K 7

你不NEED使用脂肪逗号时使用单引号,你可能,如果你想.这是可选的.

胖子逗号只是一个逗号,唯一的区别是,如果存在一个单词,一个没有引号的单词,那么它会将该单词视为单引号.

来自perlop:

=>运算符是逗号的同义词,除非它使左侧的单词如果以字母或下划线开头并且仅由字母,数字和下划线组成,则将其解释为字符串.这包括可能被解释为运算符,常量,单个数字v字符串或函数调用的操作数.如果对此行为有疑问,可以显式引用左操作数.