if you do
$var = [[1,2,3], [4,5,6]]
$var will be set to [1,2,3,4,5,6]. you can observe this with a template
like
<% var.each do |el| -%>
array element: <%= el %>
<% end -%>
on the other hand,
$a = [1,2,3]
$b = [4,5,6]
$var = [$a, $b]
will preserve the arrays within the array, which means you can do a
nested loop in your template:
<% var.each do |arr| -%>
array {
<% arr.each do |el| -%>
<%= el %>
<% end -%>
}
<% end -%>
defining lots of "dummy" variables will just make the config less easy
to read, so the current best workaround is to use a string and split it
on some character which hopefully won''t be used in any of the values.
ugly.
question: does anyone really depend on this flattening of arrays which
are specified as immediate values, or could this behaviour change?
this issue is related to http://projects.reductivelabs.com/issues/2226
I tried to work around the problem by defining a function which would do
this for me, e.g.,
$var = concat([1,2,3], [4,5,6])
unfortunately, even though the function works for simple values, with
these immediate array values the parser barfs:
Syntax error at ''[''; expected '']''
I''m using 0.24.8, please let me know if this behaviour has changed in
0.25.x.
--
Kjetil T. Homme
Redpill Linpro AS - Changing the game
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.