You probably want to use the binding and just normal script evaluate rather than
Eval.me which is designed for when you don't want the full binding.

zebra_test1_list = [ 'zebra1', 'zebra2' ]
zebra_test2_list = [ 'zebra3', 'zebra4' ]

def zebras = (1..2).collect {
    evaluate("zebra_${'test' + it}_list")
}

assert zebras == [['zebra1', 'zebra2'],
                  ['zebra3', 'zebra4']]

Note that there is no def for the first two lines, otherwise
you are defining local variables which are normally visible
but not within the new context created when using evaluate.

Cheers, Paul.


On Thu, Mar 21, 2019 at 8:23 AM Narahari Lakshminarayana <itsme.narahari@gmail.com> wrote:
Friends:

Thank you in advance for your help.

I have the following groovyscript code.

def zebra_test1_list = [ "zebra1", "zebra2" ]
def zebra_test2_list = [ "zebra3", "zebra4" ]

def data="test1"
def zebra = groovy.util.Eval.me("zebra_${data}_list")

println zebra


I get the error

groovy> def zebra_test1_list = [ "zebra1", "zebra2" ] 
groovy> def zebra_test2_list = [ "zebra3", "zebra4" ] 
groovy> def data="test1" 
groovy> def zebra = groovy.util.Eval.me("zebra_${data}_list") 
groovy> println zebra 
 
Exception thrown

groovy.lang.MissingPropertyException: No such property: zebra_test1_list for class: Script1
at Script1.run(Script1.groovy:1)
at ConsoleScript2.run(ConsoleScript2:5)


Please help as to what I might be doing wrong.

-N