diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2003-04-19 21:06:51 +0100 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2003-04-19 19:32:25 +0000 |
commit | abc667d141be9d100fa9e0402f7809147d1f69b9 (patch) | |
tree | 69d65286f63d55002543c6bd697989789c1250f1 /toke.c | |
parent | 195c09c3629c17448fb78757b0012553fb092895 (diff) | |
download | perl-abc667d141be9d100fa9e0402f7809147d1f69b9.tar.gz |
Re: [PATCH] [perl #21875] Hash ref transformed as a list
Message-ID: <20030419190651.GD13333@fdgroup.com>
p4raw-id: //depot/perl@19276
Diffstat (limited to 'toke.c')
-rw-r--r-- | toke.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -3211,12 +3211,17 @@ Perl_yylex(pTHX) || ((*t == 'q' || *t == 'x') && ++t < PL_bufend && !isALNUM(*t)))) { + /* skip q//-like construct */ char *tmps; char open, close, term; I32 brackets = 1; while (t < PL_bufend && isSPACE(*t)) t++; + /* check for q => */ + if (t+1 < PL_bufend && t[0] == '=' && t[1] == '>') { + OPERATOR(HASHBRACK); + } term = *t; open = term; if (term && (tmps = strchr("([{< )]}> )]}>",term))) @@ -3229,7 +3234,7 @@ Perl_yylex(pTHX) else if (*t == open) break; } - else + else { for (t++; t < PL_bufend; t++) { if (*t == '\\' && t+1 < PL_bufend) t++; @@ -3238,8 +3243,13 @@ Perl_yylex(pTHX) else if (*t == open) brackets++; } + } + t++; } - t++; + else + /* skip plain q word */ + while (t < PL_bufend && isALNUM_lazy_if(t,UTF)) + t += UTF8SKIP(t); } else if (isALNUM_lazy_if(t,UTF)) { t += UTF8SKIP(t); |