my %defs = ( colC => { type => 'CHAR', len => '(90)' }, colH => { type => 'TIMESTAMP' } ); my $table_def = join ',', map { if ($defs{$_}) { "$defs{$_}{type} column $_" . ($defs{$_}{len} || '') } else { "INT column $_" } } @columns;