c:\@Work\Perl\monks>perl -wMstrict -le "use 5.010; ;; my $old = '\"\", \"2.90\", \"3.00\", \"3.10\", \"3.20\", \"3.30\", \"3.40\", \"4.20\", \"5v\"'; print qq{'$old'}; ;; my @repl = ('', qw(9.11 9.21 9.31 9.41 9.51 9.61 9.71 6wxyz)); my $new = replace_from_list($old, @repl); print qq{'$new'}; ;; ;; sub replace_from_list { my ($string, @list) = @_; ;; my $i = 0; $string =~ s{ \G (?: \" , [^^\"]*)? \" \K [^^\"]* (?= \") } {$repl[ $i++ ]}xmsg; $i == @list or die qq{replacement list mismatch}; return $string; } " '"", "2.90", "3.00", "3.10", "3.20", "3.30", "3.40", "4.20", "5v"' '"", "9.11", "9.21", "9.31", "9.41", "9.51", "9.61", "9.71", "6wxyz"'