my $string = "first_string ref[%u] second_string %s.ref[%u] third_string"; for (my $i=0; $i<5; $i++) { my $new_string = sprintf $string, $i, "parent_ref", $i; print "$i: $new_string\n"; }