Code :

# main.cf
body common control
{
      bundlesequence => {
                                "main",

                };
      inputs => {
                "/home/test/architecture.cf",
                "/home/test/service.cf",
                };
}

bundle agent main
{

  vars:

      # readfile
      "len" int   => readstringarrayidx("csv","/home/test/service.csv","\s*#[^\n]*",";",10000,4000000);
      # Index
      "idx" slist => getindices("main.csv");

  methods:

    "architecture" usebundle => architecture;
    "service"      usebundle => service("test", @(main.idx), "main.csv", "mylist" );
}

# architecture.cf with mylistX bundle array
bundle common architecture
{
  vars:

    any::
      "meta_csv[test][mylist]"  string => "1";
      "l1" slist => { "11", "12" };
      "l2" slist => { "21", "22" };
    any::
      "mylist1[$(l1)]" string => "mylist$(l1)";
      "mylist2[$(l2)]" string => "mylist$(l2)";
}

# service.cf
bundle agent service(prefix, idx, csv, element)
{

  vars:

    any::
      "elements[$(idx)]" string => "$($(csv)[$(idx)][$(architecture.meta_csv[test][$(element)])])";

  methods:

    "$(idx)" usebundle => actionService("$(prefix)", "architecture.$(elements[$(idx)])");

}

bundle agent actionService(prefix,elements)
{
  vars:

    any::
      "e" slist => getindices("$(elements)");

  reports:

    linux::
      "$(prefix)::$(this.bundle) : element : $(e) : $($(elements)[$(e)])";

}

# service.csv file
test;mylist1
test;mylist2

Test :

# cf-agent -f ./main.cf
R: test::actionService : element : 11 : mylist11
R: test::actionService : element : 12 : mylist12
R: test::actionService : element : 21 : mylist21
R: test::actionService : element : 22 : mylist22

Use:

readstringarrayidx

getindices