2016-09-07 14 views
1

作業ない:有効人形STDLIB「メンバー」機能人形STDLIBモジュールのメンバ関数を使用しようと

$myvariable = 'FOO' 

次いでメンバ関数を使用する場合:

member(['FOO','BAR'], $myvariable) 

エラーメッセージが表示され続けます。

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Function 'member' must be the value of a statement at /etc/puppet/modules/mymodule/manifests/init.pp:### 
+0

@MattSchuchardは彼の答えでエラーメッセージを説明していますが、エラーが別の問題の症状でなければならないと考えるのは助かりません。結局のところ、 'member()'関数を呼び出してその結果を無視するのはどのような意味ですか?このようなことは、私たちが[mcve]をリクエストする傾向がある理由の1つです。 –

答えて

2

メンバーのstdlibドキュメントを見ると、そのメンバーはrvalueであることがわかります。これは、このコンテキストでは、出力を割り当てる必要があることを意味します。これは、must be the value of a statementのエラーメッセージが示唆しているものです。 l値とr値に関する有用なウィキペディア記事をご参考ください。https://en.wikipedia.org/wiki/Value_(computer_science)#lrvalue

たとえば、変数member(['FOO','BAR'], $myvariable)の出力を変数またはリソース属性に割り当てると、コードは機能します。例えば

$myvariable = 'FOO' 
$variable = member(['FOO','BAR'], $myvariable) 
notify { $variable: } 

は、コンパイル時に通知する '真' になります。

+0

これは本当に多くの助けてくれてありがとう! – user3614014

関連する問題