in reply to Re^3: Update to smartmatch
in thread Update to smartmatch

But why live with the warnings and the uncertainty about the function's future?

perl -wE ' my @foo = (1, 2, 3); my @bar = (1, 2, 3); my @baz = (1, 2, 4); say "@foo" eq "@bar"; say "@foo" eq "@baz"; ' 1
Or:
perl -MTest::Deep::NoTest=eq_deeply -wE ' my @foo = (1, 2, 3); my @bar = (1, 2, 3); my @baz = (1, 2, 4); say eq_deeply \@foo, \@bar; say eq_deeply \@foo, \@baz; ' 1 0
smartmatch:
perl -wE ' my @foo = (1, 2, 3); my @bar = (1, 2, 3); my @baz = (1, 2, 4); say @foo ~~ @bar; say @foo ~~ @baz; ' Smartmatch is experimental at -e line 5. Smartmatch is experimental at -e line 6. 1

The way forward always starts with a minimal test.

Replies are listed 'Best First'.
Re^5: Update to smartmatch
by perldigious (Priest) on Dec 28, 2017 at 17:05 UTC

    I don't, that's why I only use it when I'm doing debugging/verification. I usually just comment out any such quick checks if not outright delete them in the end. It's mostly just a convenience for me to make sure data structures are the same before/after some code I change.

    In all honesty, I probably would have skipped learning about it had I known it was "experimental", but I went ahead and read through the chapter of Learning Perl that covered Smart Match and Given-When (also experimental) without knowing that, and only found out when I went to do the exercises at the end. I've never had a reason occur to me as to where I would use given-when, but I have found Smart Match occasionally useful for quick and dirty (i.e. lazy one line) debugging. :-)

    Just another Perl hooker - My clients appreciate that I keep my code clean but my comments dirty.