diff options
author | Hio <hio@hio.jp> | 2013-10-18 16:48:47 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2013-10-18 16:48:47 +0100 |
commit | 61bc22580524a6d92bf31b2046baa6dcc4e400d4 (patch) | |
tree | 62d904f3e94ecdeeac656893181694bd8131d0fb /AUTHORS | |
parent | 90eaaf02689a95627535076b787e35a0332ab2d5 (diff) | |
download | perl-61bc22580524a6d92bf31b2046baa6dcc4e400d4.tar.gz |
Correctly parse class name in 'for my class $foo
The code in toke.c on encountering 'for my' or for our',
skips past any optional package name, then checks that the next thing is a
'$', so that it can give a "Missing $ on loop variable" error if
necessary.
However, the code to skip the package name was using scan_ident() rather
than scan_word(); the latter assumes that the first char was the sigil,
and starts scanning from the second char onwards. So in something like
for my a1b $x (...)
scan_ident() starts scanning at '1b' in 'a1b', thinks it scanning $1 or
similar, and stops at the first non-digit char, in this case the b.
The fix is to use parse_word() instead.
Diffstat (limited to 'AUTHORS')
-rw-r--r-- | AUTHORS | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -460,6 +460,7 @@ Henrik Tougaard <ht.000@foa.dk> Herbert Breunung <lichtkind@cpan.org> Hernan Perez Masci <hmasci@uolsinectis.com.ar> Hershel Walters <walters@smd4d.wes.army.mil> +Hio <hio@hio.jp> Hojung Youn <amoc.yn@gmail.com> Holger Bechtold Hongwen Qiu <qiuhongwen@gmail.com> |