#+begin_src prep
#@ ```
#@ printf "one\ntwo\nthree\n"           > /tmp/list.txt
#@ printf " # commented line\n"        >> /tmp/list.txt
#@ printf "1\n2\n3\n"                  >> /tmp/list.txt
#@ printf "# another commented line\n" >> /tmp/list.txt
#@ printf "Not a commented # line\n"   >> /tmp/list.txt
#@ printf "1.0\n2.0\n3.0"              >> /tmp/list.txt
#@ ```
#+end_src
#+begin_src cfengine3
bundle agent example_readstringlist
# @brief Example showing readstringlist()
{
  vars:
      "my_list_of_strings"
        slist => readstringlist( "/tmp/list.txt", # File to read
                              "^\s*#[^\n]*",      # Exclude hash comment lines lines
                              "\n",               # Split on newlines
                              inf,                # Maximum number of entries
                              inf);               # Maximum number of bytes to read

  reports:
      "my_list_of_strings includes '$(my_list_of_strings)'";
}
bundle agent __main__
{
  methods: "example_readstringlist";
}
#+end_src
#+begin_src example_output
#@ ```
#@ R: my_list_of_strings includes 'one'
#@ R: my_list_of_strings includes 'two'
#@ R: my_list_of_strings includes 'three'
#@ R: my_list_of_strings includes '1'
#@ R: my_list_of_strings includes '2'
#@ R: my_list_of_strings includes '3'
#@ R: my_list_of_strings includes 'Not a commented # line'
#@ R: my_list_of_strings includes '1.0'
#@ R: my_list_of_strings includes '2.0'
#@ R: my_list_of_strings includes '3.0'
#@ ```
#+end_src
