<?xml version="1.0" encoding="windows-1252"?>
<node id="739330" title="An Apology for Puncish" created="2009-01-27 15:17:12" updated="2009-01-27 15:17:12">
<type id="120">
perlmeditation</type>
<author id="194928">
rir</author>
<data>
<field name="doctext">
When I first encountered the idea, presented in Conway's
&lt;i&gt;Perl Best Practices&lt;/i&gt;, that &lt;c&gt;use English&lt;/c&gt; be
a best practice, I just thought it another of [theDamien]'s
attempts to enable novice Perlers.  Many of those practices
might rankle a more experienced Perler, but I see the sense of
them and only fault the idea if it creates a bar to advancing
the skill of the crew.
&lt;p&gt;
I don't see using a different name for something as a loss or
gain of skill.  I scarcely ever mentally verbalize &lt;code&gt;$_&lt;/code&gt;
and such, so having a precise and formal name in front of me
would seem to be an asset.
&lt;p&gt;
But the &lt;code&gt;use English&lt;/code&gt; practice continued to seem artificial
to me and I could not formulate a reason.   What made it curious
is that I don't use puncish variables much--it was a small issue: &lt;i&gt;why do I resist using &lt;c&gt;English&lt;/c&gt;?&lt;/i&gt; but it persisted.
&lt;p&gt;
I'm pretty comfortable around these:
&lt;code&gt;@_&lt;/code&gt;,
&lt;code&gt;$_&lt;/code&gt;,
&lt;code&gt;$/&lt;/code&gt;,
&lt;code&gt;$.&lt;/code&gt;,
&lt;code&gt;$|&lt;/code&gt;,
&lt;code&gt;$/&lt;/code&gt;, &lt;code&gt;$0&lt;/code&gt;,
&lt;code&gt;$@&lt;/code&gt;, and
&lt;code&gt;$,&lt;/code&gt;.
And I think I'd usually recognize:
&lt;code&gt;$`&lt;/code&gt;,
&lt;code&gt;$'&lt;/code&gt;,
&lt;code&gt;$!&lt;/code&gt;,
&lt;code&gt;$$&lt;/code&gt;,
&lt;code&gt;$\&lt;/code&gt;,
and
&lt;code&gt;$^O&lt;/code&gt;.
There will need to be powerful contextual hints
for me to know, on sight, most of the others.
&lt;p&gt;
Well, I eventually clued to why puncish is beautiful.  And it was
all about how puncish vars help a coder who is not well versed with them.
When I read &lt;c&gt;$LIST_SEPARATOR&lt;/c&gt;, I may be confused as to its derivation; perhaps there is some parsing or data packing happening in user code.
When I see the equivalent &lt;c&gt;$"&lt;/c&gt;, I will know that &lt;c&gt;perldoc perlvar&lt;/c&gt;
has the definition.  The beauty of puncish variables is in the ease with which they can be recognized as perlvars. &lt;b&gt; There is an elegance to the namespace. 
&lt;/b&gt;
When I do need to know what &lt;c&gt;$&lt;&lt;/c&gt; is, I'll know right where to
look.
&lt;p&gt;
Be well,&lt;br&gt;rir
</field>
</data>
</node>
