木偶,'='和'=>'有什么区别

puppet, what is the difference between '=' and '=>'

说真的,'=' 和 '=>' 有什么区别? 它们看起来和感觉起来都像变量绑定运算符。

另外,为什么每次声明后都需要一个逗号, 另一个在发现逗号时生成语法错误?

=用于assign a value to a variable,例如

$foo = 'bar'

在 Puppet 4 中有一些高级的变量赋值方法,但一般来说,只要它是表达式左侧的 $ 变量,就不要添加逗号并始终使用 =。进一步的变量赋值只是用新行分隔。

=> 是键值分隔符 in hashes 或资源中的属性列表:

{
  'foo' => 'bar',
  'bar' => 'baz',
}

file { '/etc/foo.conf':
  ensure  => present,
  content => 'bar',
}

请注意,foo、bar、ensure 和 content 本身不是变量 - 它们是散列或属性中的键。

您会发现多种语言的类似设计,例如Perl.