I should say at the outset that I'm referring to bad programming habits. I have plenty of generally bad habits (drinking, smoking, cursing, being rude to certain kinds of project manager), but I'm interested to hear what bad programming habits people have got into, and what they've done to break them. An indicative list of mine would include:
- Excessive use of double quote interpolation - I'm really doing myself no favours with print "$variable"; but I use print "$variable\n"; very heavily so the " gets to be a reflex, even where I'm not using \n.
- Excessive use of foreach, where join or map would be preferable
- Excessive use of eval. I've just about cured myself of that, since I found out how slow it is.
- Using / as a regex separator, when the regex would be clearer with an alternative.
- Using quoted strings where print <<END_BLOCK would make it clearer.
(Oddly enough, the exercise of writing them down has brought them to the front of my mind, where I can watch out for them. Useful!)
So, anyone care to join in?
Update: As per jhourcle I overlooked the Stupid mistakes I repeatedly make thread. But as Nevtlathiel pointed out, 'bad habits' ne 'stupid mistakes' #IMHO bad habits work but are not the best idea whereas stupid mistakes don't work
g0n, backpropagated monk
In reply to On bad habits
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.