Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^3: Test Number of Elements In Array

by liverpole (Monsignor)
on Jun 07, 2009 at 15:45 UTC ( [id://769284]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Test Number of Elements In Array
in thread Test Number of Elements In Array

        "The downsite is having "magic" numbers in your source code."

One doesn't introduce any new "magic numbers", if instead of writing:

if (@wishes == 3) { print "The genie has granted all of your wishes\n"; }

One writes:

if (3 == @wishes) { print "The genie has granted all of your wishes\n"; }

        "And the trick only works when comparing against a literal, not a variable."

Granted.  But that doesn't make it any less useful to use for constants, which was my point.

Speaking of magic numbers, I think one can get too carried away with their usage.  I would argue the following goes a bit overboard ...

my $days_per_year = 365; # In case the number of days in a year chang +es ;-) ... if (@calendar < $days_per_year) { warn "Hold on, Cinderella -- you're calendar isn't full yet.\n"; }

The above example is based on a college classmate of mine who, back in the days of BASIC, had the constant "dpy" ("Days per year") in a startup script, so when he needed it, he could type "dpy" instead of "365"!


s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/

Replies are listed 'Best First'.
Re^4: Test Number of Elements In Array
by akho (Hermit) on Jun 07, 2009 at 15:58 UTC
    It's buggy no matter if you use a constant or not. Last year had 366 days.

    Things change even when you don't expect them to.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2024-04-24 06:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found