In GDL scripts “…” is just a string even if the contents are the name of an existing parameter. In general-use languages there is usually a function like eval() to get the value behind the string, GDL can’t do this.
In your second example the if condition translates to “a1″=’opt1′ which is false.
You could use an array parameter and loop over it, but the values command can’t handle arrays.
Library Platform, Software Engineer