2

根据木偶文档:

顺序在声明性语言中无关紧要。

如果是这样,为什么这段代码有效:

class myserver {
  $package_to_install = 'libcapture-tiny-perl'
  package {
   $package_to_install: ensure => present;
  }
}

但这段代码不起作用

class myserver {
  package {
   $package_to_install: ensure => present;
  }
  $package_to_install = 'libcapture-tiny-perl'
}

如果顺序很重要,那么我可以看到为什么一个有效而另一个无效,但是既然顺序无关紧要,为什么它们的行为会有所不同?

4

1 回答 1

1

免责声明:我是 Puppet 开发人员之一。

因为正如我们的文档所声称的那样,我们的语言实际上不是声明性的。它实际上是订购的。:(

评估或多或少在类或声明中自上而下。该评估的产品是目录中的资源,但不是目录的评估。

将 DSL 视为构建目录的非完全声明性方式,即资源图,在处理过程中完全是声明性的。

于 2012-06-20T20:41:05.037 回答