my %swap = ( name_1 => $name_1, name_2 => $name_2, name_3 => $name_3, name_4 => $name_4, name_5 => $name_5, name_6 => $name_6, ); WHILE () { s{<\?--(name_\d+)-->}{ defined($swap{$1}) ? $swap{$1} : '' }eg; }