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.