On Tue, 21 Mar 2017 12:50:18 +0100, Elizabeth Mattijsen <l...@dijkmat.nl> wrote:
> > On 21 Mar 2017, at 12:38, ToddAndMargo <toddandma...@zoho.com> wrote: > > This is just one of those chatter posts. > > > > To me, the holy grail of coding is maintainability, > > which is why I code in Top Down. > > > > Code like below get my goat because I have to look > > at it several times before I realize what is going on > > > > $Name.IO.f or $Name.IO.open(:w).close; > > > > Basically the above says: > > > > If the the first part of the logical OR passes, > > then don't bother testing the second part. And > > if the second part of the Logical OR passes or > > fails, then "so what”. > > FWIW, I agree with you. I don’t like the use of and/or in this > capacity. But many people swear by it. To each its own. I am in the opposite camp. I use this all the time, as - to me - it makes perfect sense. I am rather consequent (in perl5) using the mix of || (between expressions) and or (between an expression and an action) expression or action; expression || expression and action; > > I'd much rather see > > if not $PathAndName.IO.f { $PathAndName.IO.open(:w).close; } I can live with that, but I still prefer the or, because it reads cleaner > > Which to me says: > > > > If this does not pass, then do something about it. > > > > To me, it is much more maintainable. > > And then there is the postfix if/unless way, which I personally like: > > $PathAndName.IO.open(:w).close unless $PathAndName.IO.f; Which I really abhor/hate. *THAT* makes me have to read the line thrice > Which to me reads: > > Create the file unless it already exists. To me it reads "Create the file". Oh shit I shouldn't have as some idiot told me too late not to if it rains. Program minds differ :) > Liz -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.25 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
pgpsm3TmyUPtj.pgp
Description: OpenPGP digital signature