From: Vincent Pit Date: Sat, 28 Nov 2009 12:27:02 +0000 (+0100) Subject: Allow a closing brace after an "use VERSION" X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=17c59fdf7540adaf656e96fe6d48b58dab391dc0;p=p5sagit%2Fp5-mst-13.2.git Allow a closing brace after an "use VERSION" This fixes [perl #70884] : use VERSION in BLOCK without semicolon -> syntax error --- diff --git a/t/comp/use.t b/t/comp/use.t index fade9fe..c9b76d7 100755 --- a/t/comp/use.t +++ b/t/comp/use.t @@ -6,7 +6,7 @@ BEGIN { $INC{"feature.pm"} = 1; # so we don't attempt to load feature.pm } -print "1..69\n"; +print "1..73\n"; # Can't require test.pl, as we're testing the use/require mechanism here. @@ -62,6 +62,18 @@ sub isnt ($$;$) { _ok ('isnt', @_); } +eval "use 5"; # implicit semicolon +is ($@, ''); + +eval "use 5;"; +is ($@, ''); + +eval "{use 5}"; # [perl #70884] +is ($@, ''); + +eval "{use 5 }"; # [perl #70884] +is ($@, ''); + # new style version numbers eval q{ use v5.5.630; }; diff --git a/toke.c b/toke.c index 173ded4..dfcb034 100644 --- a/toke.c +++ b/toke.c @@ -3807,7 +3807,8 @@ S_tokenize_use(pTHX_ int is_use, char *s) { s = SKIPSPACE1(s); if (isDIGIT(*s) || (*s == 'v' && isDIGIT(s[1]))) { s = force_version(s, TRUE); - if (*s == ';' || (s = SKIPSPACE1(s), *s == ';')) { + if (*s == ';' || *s == '}' + || (s = SKIPSPACE1(s), (*s == ';' || *s == '}'))) { start_force(PL_curforce); NEXTVAL_NEXTTOKE.opval = NULL; force_next(WORD);