Beat: Regex Teil suchen, anderen Teil ersetzen

Beitrag lesen

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

--
Woran ich arbeite:
X-Torah
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o