Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: Why use strict is good, and barewords are bad

by hardburn (Abbot)
on Apr 21, 2005 at 19:10 UTC ( [id://450158]=note: print w/replies, xml ) Need Help??


in reply to Re: Why use strict is good, and barewords are bad
in thread Why use strict is good, and barewords are bad

Until a new reserved word is added to the language. I could see dec used as a decrement operation equivilent to $foo = $bar - 1;. Or maybe you have a module that imports an apr() sub into your namespace for calculating Annual Precentage Rates. Or maybe something completely different.

The point is, you can't guarentee that any of those won't take a different meaning at some point in the future, so you should just avoid using them as barewords.

"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.

Replies are listed 'Best First'.
Re^3: Why use strict is good, and barewords are bad
by Mabooka-Mabooka (Sexton) on Apr 22, 2005 at 07:15 UTC
    LOL:). One more to my colllection of "expect the unexpected".

    My 1st guess out of jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec
    was "may",
    second - "dec",
    and only 3d - "oct"
    (note that I don't Perl).

    Imagine:
    may $foo == $bar; then $awk = sep($foo, $bar, 18) unless oct(18) eq int("2".dec("2.00000 +0)")

    :-).
Re^3: Why use strict is good, and barewords are bad
by Anonymous Monk on Apr 22, 2005 at 10:04 UTC
    Or maybe you have a module that imports an apr() sub into your namespace for calculating Annual Precentage Rates.
    As long as subs (or new buildins) without arguments return a string with the same name as they have, all will be well. I mean, if oct were to be defined that oct() eq "oct", the OPs example would not have been a problem.

      While I like the clever solution to the problem at hand (barewords), I'm much happier that Perl chose the DWIMery of using a default argument of $_, e.g.: perl -Mstrict -lwe 'print for map oct, qw/077 777 034/'

      (63, 511, 28) vs. ("oct", "oct", "oct")

      And if we could get around those pesky laws of thermodynamics, we could have a perpetual motion machine.

      "There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2024-03-28 08:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found