有一句代码没看明白,请高手进来,关于$- 和$+

有一句代码没看明白,请高手进来,关于$- 和$+

有如下代码:

$a = 'nnnnna123nnnnnb123nnnnnc123nnnnn';
while ($a=~/(123)/g){
print "$-[1]\t$+[1]\n";
}

为何$-[1]和$+[1]能求得pattern匹配上$a所在的位置,$-和$+可以这样用吗?
是 @- 和 @+,不是 $- 和 $+。
perldoc perlvar
明白了,谢谢。
1. 关于为什么?  Perl这么定义的.

2. 印象中应该是[0]