如何获取这个文档中部分内容的位置呢??

如何获取这个文档中部分内容的位置呢??

参考如下的Test.txt文件内容:

[50]
type=delfile
value=1111


[100]
type=delkey
value=222
yes=
no=

[200]
type=delkey
value=3333
yes=
no=

我想要定位到每一个value处,并且修改每一个value的值。
我写啦一下程序:
......
$data2 =~ s/\[50\][~\[]+value=.*/value=$50value/;
$data2 =~ s/\[100\][~\[]+value=.*/value=$100value/;
......
第一行,可以定位到50下面的那个value,也把里面的值修改拉,但是不明白为什么第二行却无法定位到100下面的value.不能修改里面的值.或者说我第一个定位也是巧合呢,请帮助.
55555555555没人理,唉:
1. $data2 =~ s/\[50\][~\[]+value=.*/value=$50value/; # 修改后的结果? ~应该是^吧? [50]也替换掉了? 加()然后替换$1之类的吧
    如果要在字符串中依次获取=~同一个模式, 那么用=~//g

2. 要真正修改原文件, 用Tie::File吧

3. 对于你这样标准的config格式文件, 有很多module可以方便的直接读取修改, 譬如:
   Config::Simplge
http://search.cpan.org/~sherzodr/Config-Simple-4.59/Simple.pm

  Config::Inifiles
http://search.cpan.org/~wadg/Config-IniFiles-2.38/IniFiles.pm

...
...

看不懂,我是初学者,能不能具体点,或者提供一下关键步骤的程序,谢谢咧
$data2 =~ s/(\[50\][^\[]+value=).*/$1 . '789'/e;
哇塞,Lonki 好厉害,以后你就是我的偶像咧