use strict; use warnings; my $dataline = <<'DATALINE'; #something $$$$ line1 #something $$$$ line2 DATALINE my $dataline02 = $dataline; my $newval = 'name'; pos($dataline) = 0; while($dataline =~ /\${4}\n(\w+)\d/g){ $dataline02 =~ s/$1/$newval/; } print $dataline,"\n",$dataline02;