Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Re: Can If-then conditions do ($a = $b = $c) type expressions?

by admiralh (Sexton)
on Apr 26, 2002 at 04:43 UTC ( #162175=note: print w/replies, xml ) Need Help??

in reply to Re: Can If-then conditions do ($a = $b = $c) type expressions?
in thread Can If-then conditions do ($a = $b = $c) type expressions?

I will certainly agree that this works.

I also say this is not obvious at all, and I defy you to remember 6 months from now what in the world you were trying to do. The code

# Test if $a, $b, and $c are equal # to the same number if ($a == $b && $a == $c) { print "Three agree\n"; } else { print "Three don't agree\n"; }
is clear, easy to read, and understandable to anyone who would be in position to maintain your code.

Cool code is fun, but maintaining cool code is a nightmare.

  • Comment on Re: Re: Can If-then conditions do ($a = $b = $c) type expressions?
  • Download Code

Replies are listed 'Best First'.
Re: Re: Re: Can If-then conditions do ($a = $b = $c) type expressions?
by premchai21 (Curate) on Apr 26, 2002 at 07:10 UTC

    If I'm not mistaken, it was specified in the original node that e was looking for alternatives to the method in your post. Most likely TheDamian's solution is the most readable and concise, but it uses a non-core module, which can be problematic in some situations. What I posted was just another WTDI.

    Yes, I would remember what it meant six months afterward; if there were any chance someone else would have to maintain it, I would most likely abstract it into a subroutine, or at least put a comment there (see below).

    And while in almost all cases the original method (the same as yours) is more readable, at some point the number of equalities being tested becomes unwieldy, and it becomes more efficient readability-and-writability-wise to abstract the test out into a grep.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://162175]
[haukex]: But I was just using it as an author test anyway
[Corion]: haukex: Aaah - I thought you were still running these tests on every machine, but you only run these as author or Devel::Cover tests
[Corion]: haukex: Yeah, I think back then I used Test::Inline, which used a pod parser that was going through some changes and I didn't want to cater for all the various versions and thus stopped testing the Pod completely
[choroba]: I usually do this with presentations
[Corion]: But now I think statically (re)generating the Pod tests is a saner approach, and likely I'll regenerate the tests either in Makefile.PL or from xt/ but have them live below t/
[choroba]: I keep the snippets in files of their own, and use a Makefile to syntax highlight them and insert them into slides, while also running them and inserting the output if required
[Corion]: choroba: Ooooh - I didn't think of that! I write my presentations as POD and if it "roughly" looks like Perl code, I should also syntax-check that...
[haukex]: Yes sorry I don't run them all the time, my POD tests are only run as author tests (and are excluded when I'm using Devel::Cover)
[Corion]: choroba: Hmm - no, I keep the snippets inline, but as my framework also has support for capturing output etc., maybe I should do the same...
[Corion]: haukex: Yes, that approach is sane, and it heals the fragility of Pod parsers in a nice way while still syntax-checking stuff

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2017-02-27 12:25 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (385 votes). Check out past polls.