Forum: CFEngine Help
Subject: array indexes and order. Do we need sort?
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,26932,26932#msg-26932
If an array in Cf is an associative list, then the order of the index is not
guaranteed. Is this a correct assertion? For example.
$ cat order.cf
body common control {
bundlesequence => {
"main",
};
inputs => {
"cfengine_stdlib.cf",
};
}
bundle agent main {
vars:
"dim_items"
comment => "Read data file for parsing.",
int => readstringarrayidx(
"i",
"${sys.workdir}/inputs/order.txt",
"\s*#[^\n]*",
"\s*;;\s*",
"100",
"5k"
);
"ii" slist => getindices("i");
classes:
"index_ii_defined" expression => isvariable("ii");
reports:
index_ii_defined::
"${i[${ii}][0]} -> ${i[${ii}][1]}";
}
$ cat order.txt
me ;; item 1
fo ;; item 2
fi ;; item 3
xu ;; item 4
pq ;; item 5
$ cf-agent -If ./order.cf
R: me -> item 1
R: fo -> item 2
R: fi -> item 3
R: xu -> item 4
R: pq -> item 5
In this example the order of the array matched the order of the lines in the
file. Is this guaranteed? If not then I feel we need some sort of sort
function.
"ii" slist => sort( getindices("i"), "numeric" );
Thoughts?
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine