You came pretty close to reality: $($+(%,Join.,$network),2) is the same as $eval($+(%,Join.,$network),2). Any other way to evaluate dynamic vars would be incompatible with the scripting language and would break scripts. For example, currently, you can have a variable named %(ping. Changes are worth breaking existing scripts only if they enhance functionality considerably, imo.