RE: "Secret" operators

"McGlinchy, Alistair" <[email protected]>
Newsgroups gmane.comp.lang.perl.fun
Message-ID <8B653E54B22CC741B9D5AF5FD15126FC0118E77D@MSHVSMNSEXP0002.mnsexchange.adroot.marksandspencer.com>
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 <=> would be able to dock to easily.

Examples:
	print -+-'23a'    # prints 23
	print -+-'3.00'   # prints 3	
	print -+-'1.2e3'  # prints 1200
	
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 =~. Hence this operator is useful
for removing unsightly parenthesises from some expressions.

	print 0+'20GBP'   x 3;  # Wrong. Prints 20   ==
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 
	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?


-----------------------------------------------------------------------

==================================================
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
Facsimile (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.
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.