Re: "Secret" operators

[email protected] (José Castro)
Newsgroups perl.fwp
Message-ID <[email protected]>
* McGlinchy, Alistair ([email protected]) wrote:
> Hi All,
> 
> High in fun, but low in usefulness is -+- , a high precedence string
> numerifier. It sort of looks like an A C Clarke style spacestation so
> that's what I've been calling it. Although I'm not too sure that Larry's
> spaceship <=3D> would be able to dock to easily.

Of course it would!

  <=>
   |
   +
   |

Larry's probably been there a couple of times...

> Examples:
> 	print -+-'23a'    # prints 23
> 	print -+-'3.00'   # prints 3=09
> 	print -+-'1.2e3'  # prints 1200
> =09
> I know 0+ does the trick too, but binary + has a relatively low
> precedence. Perl will automatically numerify the arguments of the *
> operator but won't do so for x, !~ or =3D~. Hence this operator is =
> useful
> for removing unsightly parenthesises from some expressions.
> 
> 	print 0+'20GBP'   x 3;  # Wrong. Prints 20   =3D=3D
> 0+"20GBP20GBP20GBP"
> 	print (0+'20GBP') x 3;  # Wrong. x 3 is applied to the return of
> print
> 	print((0+'20GBP') x 3); # Right, but too Lispy=20
> 	print -+-'20GBP'  x 3;  # Right. Spacestation to the rescue!
> 
> Unfortunately -+- is bugged [*], but I'll leave these as gotcha's for
> your production code. :-)
> 
> 
> 
> Cheers,
> 
> Alistair
> 
> [*] You might want to consider: print    -+- '-2B'      x 5;  # Bug?
> 
> 
> -----------------------------------------------------------------------
> 
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
> =3D=3D
> Registered Office:
> Marks and Spencer plc
> Waterside House
> 35 North Wharf Road
> London
> W2 1NW
> 
> Registered No. 214436 in England and Wales.
> 
> Telephone (020) 7935 4422
> =46acsimile (020) 7487 2670
> 
> <<www.marksandspencer.com>>
> 
> Please note that electronic mail may be monitored.
> 
> This e-mail is confidential. If you received it by mistake, please =
> let us know and then delete it from your system; you should not =
> copy, disclose, or distribute its contents to anyone nor act in =
> reliance on this e-mail, as this is prohibited and may be unlawful.
--
Jose Alves de Castro <[email protected]>
      http://jose-castro.org/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.