I'm trying to use metaprogramming to create two functions. Each of which 
includes a similar, long, call to run(). The calls are not quite identical. 
Some flags have different arguments, and some are only present on one call. 
I can't work out how to get expression interpolation to happen within 
command interpolation. For example:

for (fn, arg) = ((:toucha, "a"), (:touchb, "b"))
    #@eval ($fn)() = run(`touch $arg`)
    @eval ($fn)() = run(`touch $(@eval ($arg))`)
end    

In the first of these cases, the result for toucha is
toucha() = run(`touch $arg`)

and similarly for the second result, the parsing character $ is ignored by 
the eval. Is there a way to get this to instead return
toucha() = run(`touch a`)

?

Reply via email to