Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: Smartmatch alternatives

by cavac (Chaplain)
on Dec 17, 2013 at 15:25 UTC ( #1067481=note: print w/ replies, xml ) Need Help??


in reply to Re: Smartmatch alternatives
in thread Smartmatch alternatives

Looks nice.

Does the overloaded operator have any side effects on normal bitwise operations?

"I know what i'm doing! Look, what could possibly go wrong? All i have to pull this lever like so, and then press this button here like ArghhhhhaaAaAAAaaagraaaAAaa!!!"


Comment on Re^2: Smartmatch alternatives
Re^3: Smartmatch alternatives
by tobyink (Abbot) on Dec 17, 2013 at 16:25 UTC

    It shouldn't do, unless your smart match operands also happen to be objects that override bitwise-or. (For example, Math::BigInt does.)

    The match($a, $b) function really is saner though. And faster for that matter. (Though the real smartmatch operator beats each hands down!)

    use v5.18; use match::simple -all; use Benchmark qw( cmpthese ); $::A = 3; $::B = [1 .. 5]; cmpthese(-1, { 'match' => q[ match($::A, $::B) ], 'M' => q[ $::A |M| $::B ], '~~' => q[ no warnings 'experimental::smartmatch'; $::A ~~ $::B + ], }); __END__ Rate M match ~~ M 11487/s -- -69% -99% match 36540/s 218% -- -97% ~~ 1420284/s 12265% 3787% --

    Anybody willing to provide a patch for an XS implementation of match::simple::match() would be likely to have it accepted. ;-)

    use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1067481]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2015-04-26 12:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who makes your decisions?







    Results (487 votes), past polls