#!/usr/bin/perl use warnings; use strict; use Data::Dumper; my $group = 'g'; my $exe = 'e'; for my $s_version (qw(s8 s9)) { my $template = { global => { variables => { version => "${s_version}", ($s_version eq "s8") ? (base => "\${version}/$group") : ( exe => "\${exe_state}", base => "\${s_version/${exe}/$group" ), variant => "10", dir => "\${root}", }, }, }; print Dumper $template; }