如何动态获取正则表达式中匹配的字段?

如何动态获取正则表达式中匹配的字段?

这样一个字符串:

[Copy to clipboard] [ - ]
CODE:
HTTP/1.1 200 OK\r\nServer: Microsoft-IIS/5\r\n

我用这样的表达式来匹配:

[Copy to clipboard] [ - ]
CODE:
^HTTP/1\.[01].*\r\nServer: Microsoft-IIS/([-.\w]+)\r\n

然后我有个变量这样定义的:
my $ver = "$1";

如果后面直接输出的时候,print $ver会输出$1而不是输出5,请问怎么样才能够输出5?
谢谢!
又见符号引用。
死也不告诉你。
就算$1没有值,输出的$ver 也不可能是 $1 啊。
主要原因是这样的,有一个文本文件,有两列,第一列是一个正则,第二列是要取匹配的字段:

正则1     2
正则2     1
正则3     3
正则4     2

有一个字符串,要和这个文件里的每个正则匹配,如果匹配到了,就按照后面的数字,取出需要的值。


QUOTE:
原帖由 撒哈拉里的鱼 于 2007-12-27 14:07 发表
主要原因是这样的,有一个文本文件,有两列,第一列是一个正则,第二列是要取匹配的字段:

正则1     2
正则2     1
正则3     3
正则4     2

有一个字符串,要和这个文件里的每个正则匹配,如果匹配到 ...

用 @+ 和 @- 试试看?
多谢flw,我用$+[1] - $-[1]计算出了匹配段的长度,然后substr函数,知道了$-[1]和长度,就找出了这个段。