use POSIX; ... my $datedname = join('_', $servername, strftime("%m%d%Y", localtime()); my %opts = ( server => 'master', mk_image => 'yes', source => $servername, location => "$filepath/$servername/$datedname", ); my @cmd = qw/nim -o define -t mksysb/; for my $o ( keys %opts ) { push @cmd, '-a', "$o=$opts{$o}" } push @cmd, $datedname; print " command-line: @cmd\n"; system( @cmd ); }