[求助]正则表达式的多次匹配

[求助]正则表达式的多次匹配

待处理的文件格式是:(......表示省略字符,我只需要把每行中类似于1.1.1的格式提取出来)
......A:1.1.1.....
......A:1.1.2.....
......A:1.1.1 A:1.1.2......
......A:1.1.4 A:1.1.5 A:2.4.18......
......
每行出现(\d+\.\d+\.\d+)的个数是随机的,我需要做的是把这个文件中所有类似于“1.1.1”的结构无重复的取出来。
foreach my $line(@data){
    $line =~ /A\d+\.\d+\.\d+)/;
    $hash{$1} = 1;
}
只能取出每行的第一个:(
正则表达式匹配中,第一个匹配成功的会付给$1,第二个会付给$2。。。可是现在每行不知道具体有几个,请问有什么好方法解决这个问题啊?
恳请大家帮忙!
对$line做while (=~ /.../g)


QUOTE:
原帖由 Lonki 于 2007-10-13 18:10 发表
对$line做while (=~ /.../g)

?没明白。可不可以请Lonki说详细一点点?谢谢
Ok了,用
foreach my $en($line =~ /A:(\d+\.\d+\.\d+)/g){
     #do something
};
实现的,原来/g参数返回的是匹配的数组啊,谢谢Lonki!