> I have a file with some settings, and I want to change some 
> of them. But when I write the file, I lose everything after a 
> certain point.
> 
> Can someone point out my moronic mistake?
> Everything after "ROOT =" is lost but it changes "ROOT =" to 
> the correct value.
> 
> # perl here
>       $out = "";
>       open(TMPL, "$tree_path/$file");
>       {
>       local $/ = "";
>       $out = <TMPL>;
>       }
>       close TMPL;
> 
>       open(NEW, ">$tree_path/$client_uc/$patch/$file");
>       $out =~ s/^ROOT\s*=\s*.*?$/SUMMITROOT=$tree\/$extra/m;  
> # replace
> root line
>       $out =~ s/^#(un)?def(ine)?\s+REFROOTDIR.*?$/#define REFROOTDIR
> $old$extra/m; #replace refrootdir line
>       print NEW $out;
>       close NEW;
>       print "Edited $tree_path/$file\n";
> 
> __END__

When you do a multi-line match, I'm pretty sure $ matches the end of the
entire string. Try matching \n instead of $ - I think that should do it.

 -dave



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to