I'm trying to enter a list of variables as an argument for a program. Unfortunately, I've been running into some problem.

I made the program to have a unique argument, "outcomes", and then I insert the first argument for the code as a local containing two variables, "x" and "y".

The code only produces x_post_std instead of also producing y_post_std.

I checked the program arguments section of the help file, but it had no information about inputting a local as an argument.

Code:
cap program drop test
program test

* Arguments: components and covariates
args outcomes
{

* Step 1: Standardize variables
    foreach var in `outcomes' {
    di "`var'"
            
        * Create standardized versions
        cap drop `var'_post_std
        
        sum `var'
        gen `var'_post_mean = r(mean)
        gen `var'_post_sd = r(sd)
        gen `var'_post_std = (`var' - `var'_post_mean) / `var'_post_sd
        drop `var'_post_mean `var'_post_sd
        
}    
}
end

clear
set obs 20
gen x = rnormal()
gen y = rnormal()

local variables "x y"

test `variables'