develooper Front page | perl.perl5.porters | Postings from March 2000

[PATCH]5.5.670 Re: [19990603.002] Documentation for => needs clarifying

From:
Rick Delaney
Date:
March 22, 2000 09:58
Subject:
[PATCH]5.5.670 Re: [19990603.002] Documentation for => needs clarifying
Message ID:
Pine.UW2.4.10.10003221232230.17829-100000@consumer
Nathan Torkington wrote:

> Here's the sample code:
> 
>   %a = (one => 1);	# no warning
>   %a = (one
> 	=> 1);		# warning about "bareword interpreted..."
> 
> This should be fixed in the tokenizer and not the documentation.
> Any takers?

This works for small values of tested.  I leave possible side effect
prevention to someone who knows what they're doing.

Rick

*** perl-5.5.670/toke.c.old	Sat Feb 26 00:24:50 2000
--- perl-5.5.670/toke.c	Wed Mar 22 12:07:18 2000
***************
*** 3767,3776 ****
  		    }
  		}
  
- 		/* If followed by a paren, it's certainly a subroutine. */
  
  		PL_expect = XOPERATOR;
  		s = skipspace(s);
  		if (*s == '(') {
  		    CLINE;
  		    if (gv && GvCVu(gv)) {
--- 3767,3785 ----
  		    }
  		}
  
  
  		PL_expect = XOPERATOR;
  		s = skipspace(s);
+ 
+ 		/* Is this a word before a => operator? */
+ 		if (strnEQ(s,"=>",2)) {
+ 		    CLINE;
+ 		    yylval.opval = (OP*)newSVOP(OP_CONST, 0, newSVpv(PL_tokenbuf,0));
+ 		    yylval.opval->op_private = OPpCONST_BARE;
+ 		    TERM(WORD);
+ 		}
+ 
+ 		/* If followed by a paren, it's certainly a subroutine. */
  		if (*s == '(') {
  		    CLINE;
  		    if (gv && GvCVu(gv)) {




nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About