#!/usr/bin/env perl -l use strict; use warnings; use Data::Dump; my $template = { global => { variables => { variant => 10, dir => 'root', }, }, }; for (qw{s8 s9}) { print "*** Version: $_ ***"; $template->{global}{variables}{version} = $_; if ($template->{global}{variables}{version} eq 's8') { $template->{global}{variables}{base} = "$_/group"; } else { $template->{global}{variables}{base} = "$_/exe/group"; $template->{global}{variables}{exe} = 'exe_state'; } dd $template; }