Front page | perl.fwp | Postings from February 2005

## Re: "Secret" operators

From:
José Castro
Date:
February 2, 2005 02:22
Subject:
Re: "Secret" operators
Message ID:
20050202102242.GB8808@natura.di.uminho.pt
```* McGlinchy, Alistair (Alistair.McGlinchy@marks-and-spencer.com) 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
>
>
>
> 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
> 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 <cog@cpan.org>
http://jose-castro.org/

```