从Perl5.10版开始,正则表达式引擎可以自动为备选文本建立检索树,因此一般无需特意关注这方面的细节。
所需匹配的全是单个字符,因此用字符组表示可选就足够了:
while(<>) { push @var , m '([$@%&]\w+)'g; }
Perl 5.10 引入了”占有优先“量词。在任意词后面加上一个+号,该量词就变成占有优先量词,不再回溯。