meinst du so:
if($line =~ /$id/){
$line =~ s/#VALUE "$id", "(.+?)"/#VALUE "$id", "$value"/;
}der Regex stimmt vermutlich nicht, was ist daran falsch?
Was heisst vermutlich? use warnings klärt dich über Syntaxfehler auf
Du kannst das natürlich vereinfachen:
erstens brauchst du ja das, was du einklammerst nicht mehr, warum also Klammern?
anderseits gibt es Dinge die du wieder brauchst:
$line =~ s/(#VALUE\s"$id",\s")(?:[^"]+?)(")/$1$value$2/;
$1 no capt. $2
auf die If Abfrage kann man hier verzichten.
mfg Beat