<?xml version="1.0" encoding="windows-1252"?>
<node id="19724" title="Intrepid" created="2000-06-24 16:36:46" updated="2012-05-22 20:54:27">
<type id="15">
user</type>
<author id="19724">
Intrepid</author>
<data>
<keywords>
<keyword rating="">
Unreasonable</keyword>
<keyword rating="">
Crazy</keyword>
</keywords>
<field name="doctext">
&lt;!--
 Where Buffalo not roam:
  latitude=42.56.07,
  longitude=-78.51.04

 When they do roam (SE):
  latitude:41.05.10,
  longitude:-73.51.45
  --&gt;

&lt;!-- location:latitude=41.05.10,longitude=-73.51.45 --&gt;
&lt;!-- os:GNU/Linux --&gt;
&lt;!-- birthday:1960/11/28 --&gt;
&lt;!-- Last modified: 2012-05-22T20:45:27 UTC-04:00 --&gt;


&lt;table width="368" border=0
  style="padding:1ex 2.2ex"&gt;
   &lt;tr align=center style="background-color:#000; color:#EEEE00;"&gt;
&lt;td&gt;about this image:&lt;/td&gt;
&lt;/tr&gt;&lt;tr align=left bgcolor="#000000"&gt;
&lt;td&gt;&lt;font color="#ffffff"&gt;&lt;font size="-4"&gt;This is a &lt;em&gt;visual fingerprint&lt;/em&gt; (a "visprint")
&amp;#8212; an image generated using fractal maths &amp;#8212; (not my invention)
representing my &lt;a href="#gpgpubascii"&gt;GnuPG key&lt;/a&gt; fingerprint
(postprocessed in ImageMagick).
See [http://intrepid.perlmonk.org/pkgdist/bare-C/visprint.c|C code file here] 
  (originally from [http://www.pinkandaint.com/oldhome/comp/visprint/|visprint]).&lt;/font&gt;
&lt;hr size=1&gt;
&lt;font size="-3"&gt;A great result: upon expressing our desire,
 [nothingmuch|This Good Monk] and I have been blessed by [polettix|Monk Flavio]
       with [href://?node_id=439923#Trivia|his rewrite]
  of &lt;tt&gt;visprint&lt;/tt&gt; that will alpha-mask the background, output a
  PNG format file! Thank you so much, [polettix|Flavio]!&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table&gt;&lt;tr&gt;&lt;td id="verses"&gt;&lt;br /&gt;
&lt;pre&gt;Midnight creeps so slowly into hearts of those
who need more than they get
Daylight deals a bad hand
to the penguin who has placed too many bets&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="right"&gt;Happy Feet&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


&lt;h2&gt;Welcome to the home node of&lt;br /&gt;
the Unreasonable Man!&lt;/h2&gt;

&lt;hr align=left style="text-align:left"&gt;
&lt;p style="font-size:small"&gt;Any links to &lt;em&gt;perlmonk.org&lt;/em&gt; on this
node are known to be broken, sorry &amp;hellip;&lt;/p&gt;
&lt;hr align=left style="text-align:left"&gt;
&lt;p style="font-size:small"&gt;&lt;a
     target=_self href="#cliquekids"&gt;But for how much longer?&lt;/a&gt;&lt;/p&gt;
&lt;hr align=left style="text-align:left"&gt;

&lt;h2&gt;Favorite Quotes&lt;/h2&gt;

&lt;a name="ShawQuo"&gt;&lt;/a&gt;
&lt;h3 style="font-style:italic;width:66%"&gt;&amp;quot;The reasonable man adapts himself to the world; the
unreasonable one persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man.&amp;quot;&lt;span style="text-align:right;font-style:normal;font-size:x-small"&gt;&amp;mdash; George Bernard Shaw&lt;/span&gt;&lt;/h3&gt;

&lt;hr /&gt;

&lt;a name="McMahanQuo"&gt;&lt;/a&gt;
&lt;h3 style="font-style:italic;width:66%"&gt;&amp;ldquo;Perl is the portable distillation of
the UNIX philosophy.&amp;quot;&lt;br/&gt;&lt;span style="text-align:right;font-style:normal;font-size:x-small"&gt;&amp;mdash;
Scott McMahan&lt;/span&gt;&lt;/h3&gt;

&lt;hr /&gt;

&lt;a name="AdamsBlackRabbit"&gt;&lt;/a&gt;
&lt;h3 style="font-style:italic;width:66%"&gt;&amp;ldquo;Now, as you all know, the
    &lt;a target="_new" href="http://fc05.deviantart.net/fs21/i/2011/026/e/9/wd___black_rabbit_of_inle_by_zerikazaheroux-dllg4b.jpg"
       title="a JPEG image, probably work-safe, but extremely scary"&gt;Black Rabbit of Inlé&lt;/a&gt;
 is fear and everlasting
 darkness. He is a rabbit, but he is that cold bad dream from which we
 can only entreat the Lord Frith to save us today and tomorrow.&amp;rdquo;&lt;br /&gt;
    &lt;span style="text-align:right;font-style:normal;font-size:x-small"&gt;&amp;mdash; from Watership Down, by Richard Adams&lt;/span&gt;
 &lt;/h3&gt;

&lt;hr /&gt;
&lt;h3 style="font-style:italic;width:66%"&gt;&amp;quot;Write documentation as if whoever reads it is a violent psychopath who knows where you live.&amp;quot;
&lt;br /&gt;&lt;span style="text-align:right;font-style:normal;font-size:x-small"&gt;&amp;mdash;Steve English, as quoted by Peter Langston&lt;/span&gt;&lt;/h3&gt;
&lt;hr /&gt;

&lt;a name="MalrauxQuo"&gt;&lt;/a&gt;
&lt;h3 style="font-style:italic;width:66%"&gt;&amp;quot;&amp;#91;André Malraux said&amp;#93; Do what you believe you must and leave the interpreting of it to others.&amp;quot;&lt;br/&gt;
&amp;quot;&amp;#91;This&amp;#93; seemed to me to summarize his personal philosophy. How true this is. Don't be distracted by the
carping of bystanders, their irresponsible attitudes, their self-serving, cowardly words and actions.&amp;quot;&lt;br/&gt;
&lt;span style="text-align:right;font-style:normal;font-size:x-small"&gt;&amp;mdash; Daisaku Ikeda on a dialog with [http://en.wikipedia.org/wiki/Andre_Malraux|André Malraux]&lt;/span&gt;&lt;/h3&gt;

&lt;hr /&gt;

&lt;h4&gt;a little quote about religious tolerance, which I see as pertaining to
the tendency of some Christians to shout "&lt;b&gt;Persecution!&lt;/b&gt;" rather often nowadays:&lt;/h4&gt;
&lt;a name="limits"&gt;&lt;/a&gt;&lt;h3 style="font-style:italic;width:66%"&gt;&amp;quot;We respect the right
of everyone to believe whatever they like. ...
But there are two important limits to religious tolerance. First, I have no
right to legal protection against your &lt;b&gt;scepticism&lt;/b&gt;, &lt;b&gt;criticism&lt;/b&gt; or &lt;b&gt;ridicule&lt;/b&gt;.
Religion is too powerful a force, and is too often a cause of injustice or
evil, for it to be immune from discussion and debate.&amp;quot;
&lt;span style="text-align:right;font-style:normal;font-size:x-small"&gt;&amp;mdash;
&lt;a target="_new" href="http://en.wikipedia.org/wiki/David_Pannick"&gt;David Pannick QC&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;


&lt;hr /&gt;


&lt;h3 style="font-style:italic;width:66%"&gt;
   You can disagree with &lt;b&gt;[id://290301|my views about Perlmonks]&lt;/b&gt;, surely,&lt;/h3&gt;
   but do not bitch and moan later that you didn't have those views carefully
   explained to you &lt;b&gt;;-]&amp;gt;&lt;/b&gt;
&lt;hr /&gt;

&lt;table cols=2 rows=2 border=0 rules=hsides&gt;
&lt;tr&gt;&lt;th colspan=2&gt;What's on this node? &amp;#91;an erratic, partial TOC&amp;#93;&lt;/th&gt;

  &lt;tr&gt;
     &lt;td width="83%"&gt;&lt;a target=_self href="#mswindwoes"&gt;I use multiple Operating System / Platforms&lt;/a&gt;
       and therefore several different &lt;i&gt;ports&lt;/i&gt; of Perl.&lt;/td&gt;
     &lt;td style="font-size:smaller"&gt;&lt;font size="-4"&gt;last update &lt;tt&gt;28 Dec 2011&lt;/tt&gt;&lt;/font&gt;&lt;/td&gt; 
  &lt;/tr&gt;

  &lt;tr&gt;
     &lt;td width="83%"&gt;Join the gang (folks who have long been listed
     on this node as people being /ignored) who have declared that
     they wish to
   &lt;a target=_self href="#cliquekids"&gt;see that Intrepid is somehow
   forced to leave Perlmonks&lt;/a&gt;?&lt;/td&gt;
     &lt;td style="font-size:smaller"&gt;&lt;font size="-4"&gt;last update &lt;tt&gt;08 Oct 2006&lt;/tt&gt;&lt;/font&gt;&lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
     &lt;td width="83%"&gt;&lt;a target=_self href="#eyeballed"&gt;Interesting CPAN modules&lt;/a&gt;:
 stuff I want to check out when I find the time.&lt;/td&gt;
     &lt;td style="font-size:smaller"&gt; &amp;nbsp; &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
     &lt;td width="83%"&gt;&lt;a target=_self href="#stickywickets"&gt;&amp;quot;Tricky&amp;quot; for me to
      remember how to use&lt;/a&gt;:
      An assortment of Perl topics that I need to look up excessively often.&lt;/td&gt;
     &lt;td&gt;&lt;font size="-4"&gt;last update &lt;tt&gt;02 Mar 2005&lt;/tt&gt;&lt;/font&gt;&lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
     &lt;td width="83%"&gt;&lt;a target=_self href="#gpgpubascii"&gt;My GPG public key&lt;/a&gt;&lt;/td&gt;
     &lt;td style="font-size:smaller"&gt; &amp;nbsp; &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
     &lt;td width="83%"&gt;Our &lt;a target=_self href="#intonement"&gt;Solemn Intonement&lt;/a&gt;
    -- something to be mindful of.&lt;/td&gt;
     &lt;td style="font-size:smaller"&gt; &amp;nbsp; &lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td width="83%"&gt;Some things are more important than Perl:
 &lt;a target=_self href="#rantnroll"&gt;a short rant&lt;/a&gt;.&lt;/td&gt;
    &lt;td&gt;&lt;font size="-4"&gt;&lt;span style="white-space:nowrap"&gt;last update &lt;tt&gt;08 Aug 2004&lt;/tt&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
     &lt;td width="83%"&gt;&lt;a target=_self href="#ignorants"&gt;Who I'm /ignore -ing&lt;/a&gt;&lt;/td&gt;
     &lt;td style="font-size:smaller"&gt; &amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
     &lt;td width="83%"&gt;The
 &lt;a target=_self href="#idemuniq"&gt;syntax-highlighted rendition&lt;/a&gt;
    of a snippet offered in Perl Monks' [Meditations].&lt;/td&gt;
     &lt;td&gt;&lt;font size="-4"&gt;&lt;span style="white-space:nowrap"&gt;last update &lt;tt&gt;04 Jul 2004&lt;/tt&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td width="83%"&gt;Shell scripting in service of Perl:
 &lt;a target=_self href="#pmgetcode"&gt;download and view PM nodecode&lt;/a&gt;.&lt;/td&gt;
    &lt;td&gt;&lt;font size="-4"&gt;&lt;span style="white-space:nowrap"&gt;last update &lt;tt&gt;07 Aug 2003&lt;/tt&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;
  &lt;/tr&gt;

  &lt;tr&gt;
    &lt;td width="83%"&gt;Terribly kewl
&lt;a target=_self href="#nypm-b.css"&gt;CSS scheme&lt;/a&gt; for Perl Monks.&lt;/td&gt;
    &lt;td&gt;&lt;font size="-4"&gt;&lt;span style="white-space:nowrap"&gt;last update &lt;tt&gt;02 Sep 2004&lt;/tt&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td colspan="2"&gt;&lt;a target=_self href="#LastWord"&gt;Last Word&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;

  &lt;th&gt;&lt;th&gt; &amp;nbsp; &lt;/th&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;hr&gt;
&lt;h3&gt;Useless Biographical Trivia?&lt;/h3&gt;
&lt;p&gt;&lt;br /&gt;
I was born a while ago (I am 47). I was named S&amp;ouml;ren Michael Andersen.&lt;br /&gt;

Then I learned some Perl and became a CPAN Author:
&lt;PRE&gt;
&amp;#91;...&amp;#93;AUTHORS/ID/S/SO/SOMIAN/
&lt;/PRE&gt;

&lt;p&gt;
I am a [http://intrepid.perlmonk.org/dyn/enf.html|perlmonk.org User] as well as a perlmonks.org Monk.
Confused yet  ;-) ?

&lt;h3 style="font-style:italic"&gt;&amp;quot;... people who condemn others simply on the basis that the target of condemnation is "angry" or "frustrated" are using a false premise as a basis for their condemnation. Anger is not, by itself, a transgression against society, or the Monastery.&amp;quot;
&lt;span style="text-align:right;font-style:normal;font-size:x-small"&gt;&amp;mdash; myself, [http://intrepid.perlmonk.org/perlmonks/anon1.html|here]&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The most reasonable of suggestions has been made&lt;/strong&gt;
   in [id://511916|Dealing with An(?:no|on)ytroll] by [tirwhan]. It
   deserves serious thought.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Please bookmark [http://use.perl.org/~somian/journal/27238| Perlmonks Haunted by the Ghost of Wassercrats]&lt;/strong&gt; and go read it sometime when you are not under time pressure.&lt;/p&gt;

&lt;!--  off pending retrieval of key
&lt;h3&gt;&lt;a name="gpgpubascii"
       target="_self"
       href="http://intrepid.perlmonk.org/codekeys/somian_CPAN.asc"&gt;My Open-PGP/GnuPG Public Key&lt;/a&gt;&lt;/h3&gt;
This key's fingerprint should be 
&lt;pre&gt;&lt;tt&gt;412A 0CD6 96A1 0C21 F195  7C6B B41D CE76 E82B EF30&lt;/tt&gt;
&lt;/pre&gt;

&lt;p&gt;(some recent code in nodes I've authored is signed with it using the
    tool &lt;tt&gt;perlsign&lt;/tt&gt;, see my &lt;em&gt;perlmonk&lt;/em&gt; Webspace {above}
    for more info).&lt;/p&gt;
  --&gt;



&lt;hr&gt;&lt;p&gt;
Another identity off-site for Intrepid is "perlspinr".&lt;br /&gt;
&lt;!-- [http://home.att.net/~perlspinr/browse_site.html]. --&gt;
More generally I am always known as &lt;em&gt;somian&lt;/em&gt;.
&lt;/p&gt;

&lt;div id="makedemmodooles" class="techtip"&gt;
   &lt;h3&gt;Building CPAN modules my way&lt;/h3&gt;
   &lt;p&gt;I've got my own approach to building CPAN modules for use on
      my Debian-based systems (generally a known, stable target).

   &lt;ul&gt;
       &lt;li&gt;Define this &lt;em&gt;bash&lt;/em&gt; function in one's
           &lt;em&gt;bash&lt;/em&gt; initfile somewhere:&lt;code&gt;
function mkfpl_cpanpm
{
    declare +x _thisperl;
    if [[ x"$PERL" != x"" ]]; then
        _thisperl=$PERL;
    else
        _thisperl='perl';
    fi;
    $_thisperl Makefile.PL -verbose \
       $($_thisperl -MCPAN -e'CPAN::Config-&gt;load; print $CPAN::Config-&gt;{q|makepl_arg|}')
}&lt;/code&gt;&lt;/li&gt;

       &lt;li&gt;&lt;code&gt;[ $ cpan
 cpan&gt; look &lt;Module::Name&gt; ]&lt;/code&gt;&lt;/li&gt;

       &lt;li&gt; (a new shell opens in the unpacked source directory for "Module::Name")
         &lt;ol&gt;
	    &lt;li&gt;&lt;code&gt;mkfpl&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;make 'CCCDLFLAGS=-fPIC' 'OPTIMIZE=-mtune=pentium4 -O2' 'LDDLFLAGS=-shared' \
     'CCFLAGS=-pipe -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' \
     pm_to_blib&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;make 'CCCDLFLAGS=-fPIC' 'OPTIMIZE=-mtune=pentium4 -O2' 'LDDLFLAGS=-shared' \
     'CCFLAGS=-pipe -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'&lt;/code&gt;&lt;/li&gt;
	    &lt;li&gt;&lt;code&gt;make test TEST_VERBOSE=2  # optional&lt;/code&gt;&lt;/li&gt;
	    &lt;li&gt;&lt;code&gt;su -c 'make pure_site_install'  # or $ sudo make pure_site_install&lt;/code&gt;&lt;/li&gt;
	    &lt;li&gt;&lt;code&gt;make clean  # optional&lt;/code&gt;&lt;/li&gt;
	 &lt;/ol&gt;
       &lt;/li&gt;
   &lt;/ul&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;

&lt;a name="rantnroll"&gt;&lt;/a&gt;
&lt;h3&gt;A short rant&lt;/h3&gt;

&lt;p&gt;
   One thing that I've noticed in my time spent chatting in the cb here at Perlmonks is that the level of ethical sophistication amongst a few of my fellow cb'ers can be terribly low. I make this generalization because there's one prime point of all ethical systems that &lt;b&gt;I&lt;/b&gt; can feel any respect for, and that is:&lt;br /&gt;

&lt;blockquote&gt;&lt;font size="+1"&gt;Might does Not make Right&lt;/font&gt;&lt;/blockquote&gt;

But it is clear that among the cb'ers are those who don't understand this. They have an enormous blind spot when it comes to issues in the workplace or the Perl (or other kind of) hacker community. Maybe it's a generational thing; I'm in my 40s and many Monks are in their 20s. I think the times are shaping young people to have much lower sensitivity to this. Most are very quick to point out the shortcomings of political leaders but very few seem able to see that abuse of privilige and power plays a big role close around them in their everyday lives.

&lt;p&gt;
   There are two kinds of social power generally at work in our world:
 &lt;ul&gt;
   &lt;li&gt; Individual Despots&lt;/li&gt;
   &lt;i&gt;and&lt;/i&gt;
   &lt;li&gt; The Despotic Mob&lt;/li&gt;
 &lt;/ul&gt;

&lt;p&gt;
  Both these exert their influence generally (not always) to the detraction of good in the lives of human beings, to the enhancement of evil. People seem to regard the exercize of power by individuals like irc ops as some form of divine right, which is fine as long as such people who think this way don't try to pass themselves off as &lt;i&gt;&lt;b&gt;freedom-loving&lt;/b&gt;&lt;/i&gt; people. Furthermore: there seems to be a general assumption that if a person has contrary views to an irc #channel-op or a Perlmonks God, they are automatically wrong. This is childish, immature, dangerous and pathetic. People with that degree of ethical ignorance &lt;b&gt;deserve&lt;/b&gt; what they're getting: the horrible political leadership the US nation has recently
suffered with and been damaged by (&lt;i&gt;see:&lt;/i&gt;
  &lt;b&gt;Tom DeLay, Grover Norquist, Jack Abramoff, Ralph Reed, Karl Rove, Bob Ney, Pres. George Bush, &lt;i&gt;et al&lt;/i&gt;&lt;/b&gt;).

&lt;p&gt;
  Just as bad is the pattern wherein supposedly intelligent people automatically assume that the person saying a new thing that insults (in their view) or challenges a comfortable dogma, or other item of &amp;quot;social consensus,&amp;quot; is automatically wrong.

&lt;p&gt;
  The only positive change that has ever taken place in the world has come about because of alienated, despised malcontents who dared to speak truth to power. The only kind of human being truly worth honoring is one who can summon the personal courage to speak truth to power, on whatever level or in whatever form it takes (embodied as either the despot or the mob). No-one lives a worthwhile life without ever falling afoul of some embodiment of power, sometime during their lives. The rest of humanity live like
&lt;a name="Sheepism"&gt; &lt;/a&gt;sheep, and no society that deserves to be remembered by history erects monuments of honor to sheep.

&lt;p&gt;
  When a person gets banned in irc or otherwise "punished" somehow in any kind of hacker social context, they fairly often deserve it because their actions have been contrary to the general good of the group. But not &lt;b&gt;always&lt;/b&gt;. This distinction between "&lt;b&gt;always&lt;/b&gt;" and "&lt;b&gt;not always&lt;/b&gt;" is the difference between the destruction of the world and its salvation. It is everything. Not understanding this is the distinction between an ignorant person and a real citizen, whether of the Happy Realm of Hacking Free Software or of the World.

&lt;p&gt;&lt;a name="wpTroll"&gt;&lt;/a&gt;
  From the [http://en.wikipedia.org/wiki/Internet_troll|Wikipedia entry for Internet Troll] we see this quote:
&lt;blockquote&gt;&lt;i&gt;&amp;#91;Likewise,]&lt;/i&gt;
  accusers are often motivated by a desire to defend
  a particular Internet project, and references to an Internet user as a
  troll might not be based on the actual goals of the person so named. As
  a result, identifying the goals of Internet trolls is most often
  speculative.&lt;/blockquote&gt;
&lt;/p&gt;

&lt;a name="PMoTroll"&gt;
&lt;/a&gt;
&lt;p&gt;
  The use of the term "Troll" on Perlmonks by a certain group of people is an
example of something like what's described above. It reflects not on the
accused person but on the accusers, who are 
 &lt;em&gt;misusing a type of peer group -based power (being the Despotic Mob)&lt;/em&gt;
 to exercize coercion against someone whose
 aims are, as many others see, not those of a troll at all. The very best
 that can be said of such misuse is that the accusers are engaging in
 reckless and irresponsible speculation. The worst is that they themselves
 are far more despicable than any "Internet Troll", that they are in fact
 aiming to give themselves the twisted pleasure of seeing their group power  
 effectively deny another participant the option of
 continuing to engage in a reasonable relationship with the site, community
 or project in question.&lt;/p&gt;

&lt;p&gt;
   One can only feel pity for people living with the kind of impoverished
   inner lives and distorted emotional personalities that would derive pleasure
   from such a thing,
   but unfortunately the modern world at least, with its intense pressures
and demands, often gives rise to such it seems.
&lt;/p&gt;

&lt;!-- an hr as an anchor! --&gt;
&lt;a name="ignorants"&gt;&lt;hr&gt;&lt;/a&gt;

&lt;p&gt;I don't &lt;b&gt;see&lt;/b&gt; posts by [Anonymous Monk] beginning at 6:30pm on 7 Dec 2005,
   by using CSS to override display settings. The texts of postings of any nature
   by any non-existing (Anonymous) Monk are invisible for me. This is a measure
   that I've taken until such time as the preferred solution comes to pass (the
   preferred solution being: &lt;em&gt;the Perlmonks site no longer allows Anonymous
   posting at all&lt;/em&gt;).
&lt;/p&gt;

&lt;p&gt;
There's a general idea (apparently) held by many that a certain natural law known to many
humans, one concerning &lt;b&gt;cause and effect&lt;/b&gt;,
ought to be suspended with regards to what goes on in the Perl Monks chatterbox.
In reality -- and there's nothing that exists outside of reality -- nobody has
the power to suspend the workings of this law. Folks mentioned below are those
who I feel seem to have this idea that &lt;b&gt;nothing they do in the chatterbox matters&lt;/b&gt;,
in other words, that for them, just because they want it to, this causal law is in
suspension there. This section of my home node exists as both an
&lt;b&gt;explanation&lt;/b&gt; of certain oddities in the chatterbox chatter when I am present,
and a &lt;b&gt;reminder&lt;/b&gt; that this law of causality is at work everywhere, all the time,
for everybody.

&lt;b&gt;In plain
language: Don't expect to act like a &amp;lt;expletive&amp;gt; in the cb and have it
just magically disappear.&lt;/b&gt;

&lt;h3&gt; The Infamous /ignore List&lt;/h3&gt;

&lt;p&gt;
  The following categorized lists of users at Perlmonks is not meant as a
  provocation or as "pay back". It exists first and foremost so that other
  cb users can make greater sense out of the disjointed, damaged flow of
  chatter on the cb that results from users having other users on
  &lt;tt&gt;/ignore&lt;/tt&gt;. Secondly it exists as a means of augmenting my over-stuffed
  wetware RAM (my human memory circuits) as to precisely why someone is
  not welcome in my world. That's considerably better than failing to
  remember anything more than a vague "Oh, it was something about XYZ that
  I didn't like" or some such garbage.

&lt;p&gt;
  This is not a comprehensive listing of people I've got on /ignore. It's a
  subset of those. Please don't try to deliberately make your way into this
  "public" list. I'll sometimes just
  silently dump users into oblivion, as my duty to myself dictates I must. If
  you think you've been a BLEEPING BLEEP BLEEP and so got /ignored, but aren't
  really sure, try
  sending an innocuous message (if it is not extremely polite you will be ignored
  then, even if you weren't before; I do not appreciate private msgs except from
  my special friends). If the msg is not rejected, you were not on ignore.
&lt;/p&gt;


&lt;p&gt;&lt;b&gt;A side note:&lt;/b&gt;

  The application at [http://mini-cb60.flux8.com/|cb60] is the
  only cb history interface that is currently working (to my knowledge) at
  the time of this writing, and is the only one that can be configured to
  ignore users as the live chatterbox can.
&lt;hr /&gt;
&lt;p&gt;
I am currently ignoring the following people for aggravating degrees of cluelessness,
ignorant behavior (including the chosing of a deliberately offensive user nickname),
repeatedly asking about things without paying attention to
  [http://nbpfaus.net/~pfau/cbhistory.cgi?site=PM|the answers they've already been offered], etc:
&lt;br /&gt;
&lt;ul&gt;
  &lt;li&gt;[shmem]&lt;/li&gt;
  &lt;li&gt;[yune]&lt;/li&gt;
  &lt;li&gt;[Father Jack]&lt;/li&gt;
  &lt;li&gt;[T.G. Cornholio]&lt;/li&gt;
  &lt;li&gt;[Cody Pendant]&lt;/li&gt;
  &lt;li&gt;[Plankton]&lt;/li&gt;
  &lt;li&gt;[hiddenlinux]&lt;/li&gt;
  &lt;li&gt;[Omeron]&lt;/li&gt;
  &lt;li&gt;[Nik]&lt;/li&gt;
  &lt;li&gt;[rbi]&lt;/li&gt;
  &lt;li&gt;[n4mation]&lt;/li&gt;
  &lt;li&gt;[Giulio]&lt;/li&gt;
  &lt;li&gt;[kprasanna_79]&lt;/li&gt;
  &lt;li&gt;[jimbus]&lt;/li&gt;
&lt;!--  &lt;li&gt;[artist]&lt;/li&gt;    --&gt;
&lt;!--  &lt;li&gt;[blokhead]&lt;/li&gt;  --&gt;

  &lt;!--
  &lt;li&gt;[crazyinsomniac|crazyinsomniac/PodMaster]
                    --&gt;

&lt;/ul&gt;&lt;/p&gt;&lt;hr style="height:1" /&gt;
&lt;p&gt;Ignored for committing one of acts I find most offensive in online
communities: ganging up on a user, usually with little idea of the
context for the apparent &amp;quot;infraction&amp;quot; or misbehavior she's
accused of. This leads to people leaving the Perlmonks site permanently.
OTOH, historically it has been seen that very seldom do the critical
or harsh-looking words of an individual to another individual who is
even moderately established at Perlmonk result in the second leaving.
&lt;br /&gt;
&lt;ul&gt;
  &lt;li&gt;[injunjoel]&lt;/li&gt;
  &lt;li&gt;[dhoss]&lt;!-- no cancellation until 2 years from 29 Aug 2008 --&gt;&lt;/li&gt;
  &lt;li&gt;[theorbtwo]&lt;!-- no cancellation ever --&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;&lt;hr style="height:1" /&gt;

&lt;p&gt;
   Self-avowed "trolls" on permanent /ignore:
   &lt;ul&gt;
     &lt;li&gt;[TibetPerlMonk], [c_chipster] - does not live in Tibet and admits he likes to
                           "play mind games".&lt;/li&gt;
   &lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;   See [id://290301|Who We For?] for more discussion of why I think there can be some standards
      expected of people at Perlmonks.
&lt;/p&gt;&lt;hr style="height:1" /&gt;

&lt;p&gt;
  Possible &lt;b&gt;spammers&lt;/b&gt;,
           &lt;b&gt;email-address harvesters/vendors&lt;/b&gt;, and similar foul
  beings who associate with them:
  &lt;b&gt;(I regard this as such a serious allegation that I'll only list names
   if I have a transcript of the exchange in which I learned of this, or
   other evidence to explain &amp;amp; substantiate my inclusion of the person's name here. If the evidence is a log of the chatterbox, other persons will have
  their own independently captured logs as well.)&lt;/b&gt;

 &lt;ul&gt;
   &lt;a name="#spammrmonkey"&gt;&lt;/a&gt;  
   &lt;li&gt;[perlmonkey2] - [http://intrepid.perlmonk.org/phenopolis/./2006_09_26.03cbhistory.html|transcript] (from [http://nbpfaus.net/~pfau/cbhistory.cgi?site=PM] at ~11 PM EDT 26.09.2006)
   &lt;p&gt;&lt;font size="-2"&gt;Update:  [perlmonkey2]&lt;tt&gt;    2006-11-26 18:07:29 UTC&lt;/tt&gt;
   &lt;blockquote&gt;
        He nicely didn't include the part where he had been harrassing me out of the blue and
        making threats against me.
   &lt;/blockquote&gt;&lt;/font&gt;

    &lt;p&gt;Just in case some folks might actually be inclined to &lt;i&gt;believe&lt;/i&gt; that sort of thing,
           note that the "harrassing out of the blue" and the "threats" all &lt;i&gt;followed&lt;/i&gt; the
           brag about the 1.4 mill email addys harvested; that is, [perlmonkey2] is rearranging
           the facts of what happened in that exchange to suit his own imperative need to
          achieve blamelessness (or the plausible appearence thereof, which this being Perlmonks,
          might well be good enough to deflect most participants' wariness. It shouldn't be.).&lt;/p&gt;
&lt;/li&gt;

 &lt;/ul&gt;

&lt;/p&gt;

&lt;hr style="height:1" /&gt;

&lt;p&gt;
    [id://576774|Plagiarism] and similar dishonest conduct have resulted in &lt;tt&gt;/ignore&lt;/tt&gt;
    settings for:
  &lt;ul&gt;
     &lt;li&gt;[jesuashok]
     &lt;li&gt;[mad2perl]
 &lt;/ul&gt;

&lt;p&gt;
   Other forms of conduct I find unacceptable:
   flaming, baiting, provoking, making belligerent threats,
   or abusing the site &lt;tt&gt;/msg&lt;/tt&gt; facility. Such have dictated that
   I do an &amp;quot;/ignore&amp;quot; setting for:
  &lt;ul&gt;
     &lt;li&gt;[sauoq]&lt;/li&gt;
     &lt;li&gt;[m.att]&lt;/li&gt;
     &lt;li&gt;[exussum0] &amp;amp; [sporty] (same fellow, two nicknames)&lt;/li&gt;
     &lt;li&gt;[ptum]&lt;/li&gt;
     &lt;li&gt;[jZed]      &lt;!-- from 9 Mar 06 ; 12 months min.  --&gt; &lt;/li&gt;
     &lt;li&gt;[shotgunefx]  &lt;!-- from 9 Mar 06 ; 6 months min. --&gt; &lt;/li&gt;
     &lt;li&gt;[belg4mit]&lt;/li&gt;
     &lt;li&gt;[Roy Johnson]&lt;/li&gt;
     &lt;li&gt;[runrig]    &lt;!-- from 9 Mar 06 ; 18 months min.  --&gt; &lt;/li&gt;
     &lt;li&gt;[footpad]&lt;/li&gt;
     &lt;li&gt;[BerntB]&lt;/li&gt;
     &lt;li&gt;[szbalint]&lt;/li&gt;
     &lt;p&gt;&lt;li&gt;[ChemBoy]
&lt;p&gt;&lt;blockquote style="font-style:oblique;max-width:56%;white-space:pre"&gt;
&lt;span style="font-size:smaller;font-variant:normal"&gt;ChemBoy 2006-03-09 18:32:58-05&lt;/span&gt;
I have to admit, the thought of a vengeful DOS attack
did occur to me...
&lt;/blockquote&gt;&lt;/p&gt;
 (explanation: said in cb later on the day (9 Mar 2006) on
    which I was borged 3 times; an incredibly amusing manifestation of
    an utter lack of imagination. See more
    context [href://#bloodbath_day_log|here])&lt;/p&gt;&lt;/li&gt;

&lt;a name="cliquekids"&gt;&lt;/a&gt;
     &lt;p&gt;
     &lt;li&gt;[Corion] and
     &lt;p&gt;
     &lt;li&gt;[virtualsue] ... sort of goes without saying:
    &lt;ol&gt;&lt;li&gt; that insulting
     [Intrepid] has been a regular pastime for certain users
       for a long duration of time;
        &lt;li&gt; that it isn't paranoia ;-) : there &lt;b&gt;is&lt;/b&gt; a clique
            of users at Perlmonks who are &lt;b&gt;absolutely convinced&lt;/b&gt;
          that the project belongs soley to them, and are working
          behind the scenes to force my "departure" from PM
     &lt;/ol&gt;
     &lt;iframe longdesc="Conversation on the chatterbox
on 08 Oct 2006 regarding the blocking, banning, or whatever of
Intrepid from perlmonks" name="telling" scrolling=yes"
             height="306" width="100%"
        src="http://intrepid.perlmonk.org/records/pmcb/cb60_08-10-2006.html"&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;a href="?node_id=70099"&gt;virtualsue&lt;/a&gt;&amp;nbsp; &amp;nbsp; &lt;small&gt;
2006-10-08 16:48:25 UTC&lt;/small&gt;&lt;/dt&gt;&lt;dd&gt;did you see me insult him in the past few days?&lt;/dd&gt;
&lt;/dl&gt;
       Complete context of this admission by this user:
       [http://intrepid.perlmonk.org/records/pmcb/cb60_08-10-2006.html|here].
     &lt;/iframe&gt;
       &lt;/li&gt;&lt;/p&gt;
    &lt;p&gt;
     Perhaps needless to say, other individuals who are in favor of
     machinations to see me gone from Perlmonks were also added this day:
    &lt;ul&gt;
    &lt;li&gt;[creamygoodness]
    &lt;li&gt;[TGI]
    &lt;/ul&gt;&lt;/p&gt;


     &lt;p&gt;&lt;li&gt;[ptum] (interesting openly-pious Christian fellow who seems to [id://567545|regard
         some things as sacred], but apparently only his own feelings
         &lt;b&gt;really&lt;/b&gt; count ... not those of others:)&lt;br /&gt;
&lt;blockquote style="font-style:oblique;max-width:86%;white-space:pre"&gt;
  &lt;span style="font-size:smaller;font-variant:normal"&gt;Intrepid     2006-05-26 13:28:03 UTC&lt;/span&gt;
   &lt;p&gt;&lt;i&gt;Intrepid as usual, displaying no regard whatsoever for barking
         dogs, sets himself up for B.S. from flamers.&lt;/i&gt;
  &lt;/p&gt;
  &lt;span style="font-size:smaller;font-variant:normal"&gt;ptum     2006-05-26 13:28:21 UTC&lt;/span&gt;
   &lt;p&gt;&lt;i&gt;ptum barks.&lt;/i&gt;&lt;/p&gt;
  &lt;span style="font-size:smaller;font-variant:normal"&gt;Intrepid     2006-05-26 13:28:52 UTC&lt;/span&gt;
   &lt;p&gt;&lt;i&gt;Intrepid is not surprised&lt;/i&gt;&lt;/p&gt;
    &lt;/blockquote&gt;
    &lt;p&gt;Another great advertisement for what manifests when what passes for
       belief in the teachings of Jesus Christ is avowed, these days ...&lt;/li&gt;
  &lt;/ul&gt;

&lt;p&gt;
   And there's a short list of people who have explicitly asked me to
   ignore them; I am willing to comply (have no choice but to be) with
   such requests:
  &lt;ul&gt;
     &lt;li&gt;[mirod]&lt;/li&gt;
  &lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
   And a lastly, a list of people who have implicitly asked that I ignore
   them (by placing my user nick on &lt;tt&gt;/ignore&lt;/tt&gt; without notice
   or explanation):
   &lt;ul&gt;
      &lt;li&gt;[kwaping]
  &lt;/ul&gt;
&lt;/p&gt;


&lt;p&gt;
   There's a particularly annoying kind of conduct that very frequently
   takes place and lands users who commit it on the following list. This
   consists of coming into the chatterbox with a minimal but strange-sounding
   question - one that rings "warning bells" for some of the experienced
   Perl users. When it is suggested that more information is needed because
   the approach seems dubious (perhaps based on a mistaken understanding
   of how something in Perl works), such an individual committing this
   type of annoyance then leaves in a huff, saying something like &lt;i&gt;Thanks
   for the kind help&lt;/i&gt; in a sarcastic and injured way that is intended
   to cause guilt feelings.

&lt;p&gt;
   This is playing the "&lt;b&gt;Newbie Victim of Mean Monks&lt;/b&gt;"
   card, and it is not only &lt;b&gt;stupid&lt;/b&gt;, and not only &lt;b&gt;pathetic&lt;/b&gt;,
   but also &lt;em&gt;wrong&lt;/em&gt; - because the chatterbox or Perlmonks in general
   is a place where many give of their time to try to help less experienced
   Perlers. These volunteers &lt;b&gt;don't need to&lt;/b&gt; put up with that kind
   of childishness, the attempted emotional manipulation and tantrums;
   and in my opinion, &lt;b&gt;should not&lt;/b&gt; put up with it.

&lt;p&gt;
  Again, it is (in my opinion), really ok to insist on minimum standards of
  mature behavior in order to qualify for help or attention at Perlmonks. Please
  see also [id://205373|merlyn's boilerplate disclaimer], which I believe to be
  another way of addressing this question ([merlyn] may not think this, it is
  soley &lt;b&gt;my&lt;/b&gt; opinion).
  &lt;ul&gt;
     &lt;li&gt;[rmexico]&lt;/li&gt;
  &lt;/ul&gt;
&lt;/p&gt;&lt;hr style="height:1" /&gt;


&lt;p&gt;
   Finally, I am getting a small amount of flak from Anonymous Coward (and [id://10553|see here
   for a good explanation that mirrors my views on Anonymous Monks at Perlmonks]) over
   this public list of people who I have on the 'ignore' setting. See
  [http://intrepid.perlmonk.org/perlmonks/anon1.html|more about that here].
&lt;/p&gt;

&lt;p&gt;
   [http://intrepid.perlmonk.org/transient/cbhistory_17nov2005_postproc.html|Here's an insight] into what the chatterbox looks like for me with my /ignore settings. I'm obviously missing out on some of the the very highest-quality
   trash-talking and ought to be seriously regretful. ;-P
&lt;/p&gt;

&lt;h5&gt;&lt;i&gt;Please note: shortly after writing the following section, I was&lt;br&gt;
       inexplicably "borged" in the Chatterbox by some unknown
       "Power User".&lt;/i&gt;&lt;br&gt;
       &lt;span style="x-small"&gt; 20 Oct 2005 12:50pm EDT&lt;/span&gt;&lt;/h5&gt;

&lt;h4&gt;Further abuses of the power to do "borging" have become routine. See the [href://?node=Intrepid#borglog|Borging Log].&lt;/h4&gt;

&lt;a name="chatterbum"&gt;&lt;hr /&gt;&lt;/a&gt;
&lt;h4&gt;Background&lt;/h4&gt;
&lt;p&gt;
   Kind reader, there are a small number of people here at Perlmonks who are
   quite angry and upset with me. If you partake of the cb (the "Chatterbox"),
   for example, it is possible that you will notice strange things being said.

   Be aware that I know that some of these cb personalities will be
   issuing putdowns and attempting provocations. Also be aware that I know
   it is potentially confusing for you, a third party, to see that some people
   seem to be addressing [Intrepid] but [Intrepid] seems not to be able to see
   their words. I offer my regrets for any confusion this causes you, but am
   going to humbly suggest that you trust me that it is for the best,
   and all is as well as it can be, given the presence of these kinds of
   incompletely developed personalities on PM and their maladaptive
   social tendencies.
&lt;/p&gt;

&lt;p&gt;
   The root of the problem is that each one of this small group of people
   has expressed as an imperative
   that they want me to do something, and I have refused. Each of these people
   is in fact wrong to want what they want, and is wrong to attempt to impose their
   wrongheaded will on me. So it's simple, no? It really is important to
   stick to your principles in this world. It will make people mad! There is
   simply no question about that. Having people mad at you is not &lt;em&gt;per se&lt;/em&gt;
   any kind of evidence that &lt;em&gt;you&lt;/em&gt; have done anything wrong. Please
   remember this as you go through life. You too may sometimes face a choice
   between being true to yourself and the principles you hold dear, or
   giving in to groupthink and social coercion.
&lt;/p&gt;

&lt;p&gt;
   When people don't get something they want, like a change in someone else's
   verbal behavior, (e.g., Saying "Oh, I was wrong, you are so smart so you
   must be right, I'm sorry!"), they do one or more of a number of different
   things, depending on the state of maturity and psychological health they
   possess. One thing they do if childish or very neurotic is to create a
   distorted representation of the target's personality, attitude or character
   to themselves and others. Of course if they are mature and sound in mind,
   they deal gracefully with differences of opinion or belief, understanding
   that diverse kinds of persons with diverse approaches to life are all together
   here in the world for a reason. This kind of mature understanding and
   attitude is well-represented here at Perlmonks, but unfortunately, so is
   the other, inverse type. One such attempt at misrepresentation that you may see
   here is the fable that &lt;b&gt;many&lt;/b&gt; people at Perlmonks regard me as an unpleasant
   and undesirable element. The numerous kind messages of support I receive belie
   this false portral of reality.
   But please form your own opinion and do not be swayed
   by the agendas of angry children. 
&lt;/p&gt;

&lt;p&gt;
   I am quite immovable in the face of pressure by single or multiple
   individuals to cave in to 'peer' pressure and acceed to other's
   demands. It took a long time and hard work to become this way!
   But this is a bit maddening to some of the folks here at Perlmonks;
   they have apparently become somewhat used to having their way, and like
   spoiled children, really make a fuss when someone with a perfect right
   in the integrity of their own experiences, beliefs and conscience, refuses
   them.
&lt;p&gt;

&lt;p&gt;
   That's all that's going on. No biggie, really ... just the same-ol'-same-ol'.
&lt;/p&gt;

&lt;hr /&gt;


&lt;!--     BORG LOG    --&gt;
&lt;a name="borglog"&gt;&lt;/a&gt;
&lt;table border=1 cols="1,1,6"&gt;&lt;tr&gt;&lt;th colspan=3&gt;Borged Again!&lt;/th&gt;&lt;/tr&gt;

   &lt;tr&gt;
   &lt;td&gt;24 Oct 05&lt;/td&gt;&lt;td&gt;ca. 11:15am EDT&lt;/td&gt;
   &lt;td&gt;&lt;b&gt;Circumstance&lt;/b&gt;: suggested to [jimbus] that he'd have found it fruitful to have used the
       built-in Perl documentation to learn about perl's &lt;tt&gt;-i&lt;/tt&gt; (in-place edit) switch
       before asking how in the chatterbox. This was ignored and so I increased the heat a
       little bit. I was then called a bully by [jimbus] for pointing out that learning to use perldoc
       (and at the same time mentioning which specific perldoc - 'perlrun' - it was to be
       found in) would benefit him. Was then borged (shut out of the chatterbox - placed in
       "Borg's Belly" by the NodeReaper, e.g. some Power User).&lt;br&gt;&lt;br&gt;
        
   &lt;/td&gt;
   &lt;/tr&gt;

    &lt;tr&gt;
  &lt;td&gt;&lt;a name="Nov0105"&gt;01 Nov 05&lt;/a&gt;&lt;/td&gt;&lt;td&gt;ca. 12:14pm EST&lt;/td&gt;
     &lt;td&gt;&lt;b&gt;Circumstance&lt;/b&gt;: I had just said
    &lt;blockquote&gt;
This is an instructive example however. The (apparent) naive assumption is that the chatterbox is a help desk. I keep saying it isn't (and not because *I* say so, but because it doesn't act that way), so now this ....&lt;/blockquote&gt;
       and was "borged" without warning or explanation.
    &lt;br&gt;&lt;br&gt;Another instance of totally unwarranted abuse of this power by persons unknown.
    &lt;/td&gt;
   &lt;/tr&gt;

    &lt;tr&gt;
  &lt;td&gt;&lt;a name="Dec1205"&gt;12 Dec 05&lt;/a&gt;&lt;/td&gt; &lt;td&gt;10:14:29 EST (GMT-05)&lt;/td&gt;
     &lt;td&gt;&lt;b&gt;Circumstance&lt;/b&gt;: I was being discussed by [Corion], [jeffa], [belg4mit],
         [Roy Johnson] (except for [belg4mit] and [Roy Johnson] at that time, all users
         I've had on /ignore). I responded to the name-calling.
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;

&lt;!--   end BORG LOG  --&gt;

&lt;a name="bloodbath_day_log"&gt; &lt;/a&gt;
&lt;p&gt;Something funny happened later in a day of phenomenal bad judgement and abuse
   of their Borging privileges in the chatterbox. Here's just a part of the
   comments and observations that
   took place while I was resting comfortably in [Borg's Belly]:
&lt;blockquote style="font-style:oblique;max-width:86%;white-space:pre"&gt;&lt;span
            style="font-size:smaller;font-variant:normal"&gt;
DigitalKitty 2006-03-09 18:24:35-05&lt;/span&gt;
    DigitalKitty returns. PM seems to have been unreachable for
    awhile. Pinging resulted in 100% packet loss.
&lt;br&gt;
&lt;span style=&amp;quot;font-size:smaller;font-variant:normal"&gt;
ChemBoy 2006-03-09 18:25:29-05&lt;/span&gt;
    interesting--I couldn't get the web pages, but packets all came
    back in one piece.
&lt;br&gt;
&lt;span style="font-size:smaller;font-variant:normal"&gt;DigitalKitty 2006-03-09 18:28:01-05&lt;/span&gt;
    I initially assumed a DoS attack was occuring but vroom probably
    has a firewall / perl based proxy to prevent such events.
&lt;br&gt;
 ...
&lt;br&gt;
&lt;span style="font-size:smaller;font-variant:normal"&gt;
ChemBoy 2006-03-09 18:32:58-05&lt;/span&gt;
    I have to admit, the thought of a vengeful DOS attack did occur to me...
&lt;/blockquote&gt;

 &lt;b&gt;The notion that I could launch a DoS attack against Perlmonks infrastructure
    is hilarious to me. Not only I am not very adept at network programming, but
    I am pretty much clueless when it comes to Black-Hattery. This is a good
    example of how people who haven't the first clue who they are discussing
    make the kind of absurd snap judgements and guesses that &lt;i&gt;don't go away&lt;/i&gt;.&lt;/b&gt;

&lt;p&gt;
   There may be another explanation for the strange &lt;em&gt;coincidence&lt;/em&gt; of the slowdown
   at Perlmonks on "bloodbath day". I'll leave it to people with some imagination
   to work it out for themselves, though.
&lt;/p&gt;

&lt;p&gt; &amp;nbsp; &lt;/p&gt;

&lt;table border=0&gt;&lt;tr&gt;
  &lt;td style="font-size:larger;text-align:center"&gt;&lt;h2 style="text-align:justify"&gt;Perl Tips, Observations, and Experiments&lt;/h2&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;hr /&gt;

&lt;a name="mswindwoes"&gt;&lt;/a&gt;
&lt;h3&gt;I use both Free Software Operating Systems and the proprietary Microsoft Windows OSes.&lt;/h3&gt;
&lt;p&gt;
    Obviously I prefer to spend more time on the former (my favorites are Ubuntu and its
    parent distribution, &lt;em&gt;Debian&lt;/em&gt;).  On MS Windows I use both ActivePerl and the new Win32
    Perl that's being called

         [http://strawberryperl.com/releases.html|StrawberryPerl].

    I often build my own Perl installations from source, as well.&lt;/p&gt;
&lt;p&gt;
    The quality of the user experience one has with the MS Windwoes OSes is highly variable.
    Some users find little lacking in it and some are driven crazy by it. One inclination
    that is not well-served by Microsoft is the desire to use the CLI (Command-Line Interface,
    but if you are here reading, you knew that ;-) &amp;hellip;and so I rely on the long-lived
    and community-supported

        [http://www.cygwin.com/|Cygwin]

    environment (this is important: Cygwin is supported by &lt;em&gt;volunteers&lt;/em&gt;; do not act
    like a petulant spoiled brat if you go asking for support {if you happen to try Cygwin
    out}; if you do, you will just be ignored).  Cygwin provides a port of Perl that tracks
    the major release cycle of mainstream Perl and "acts like" Perl running on a unix OS
    platform.  Cygwin also provides the Bash shell and many other GNU userspace components
    that are common to all GNU/Linux and other free unix OSes.&lt;/p&gt;

&lt;p&gt;
    Because I have acquired years of experience using Perl on MS Windwoes, I do not have
    the oblivious outlook about file name extentions that is customary from users who do
    only work on unix platforms.  My decision is to name Perl programs with a &lt;code&gt;.plx&lt;/code&gt;
    extention which disambiguates these files from those containing Perl library code. I
    use the appropriate MS Windows commands (from the CMD.exe cli) to create the right
    Registry settings so that the files named with &lt;code&gt;.plx&lt;/code&gt; extentions are
    &lt;b&gt;associated&lt;/b&gt; with the perl executable.&lt;/p&gt;

&lt;h3&gt;A smattering of Useful Tips for PerlMonks, especially new ones&lt;/h3&gt;


&lt;p&gt;
&lt;em&gt;Ripped off from [busunsl]'s node:&lt;/em&gt;
&lt;h4&gt;Link types at PM (because I tend to forget :-):&lt;/h4&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;code&gt; [id://]&lt;/code&gt; a node's id (numerical value)
    &lt;li&gt;&lt;code&gt; [cpan://]&lt;/code&gt; searches &lt;b&gt;CPAN&lt;/b&gt;
    &lt;li&gt;&lt;code&gt; [kobe://]&lt;/code&gt; is an alternate means of searching the &lt;b&gt;CPAN&lt;/b&gt; (contrasted with the &amp;#91;cpan://&amp;#93; tag)
    &lt;li&gt;&lt;code&gt; [jargon://]&lt;/code&gt; searches the Jargon file hosted at the University of Amsterdam.
    &lt;li&gt;&lt;code&gt; [doc://]&lt;/code&gt; searches [http://perldoc.perl.org/|perldoc.perl.org]: the
    idea here is to provide a way of linking to more current Perl documentation
    than what Perlmonks can maintain.
    &lt;li&gt;&lt;code&gt; [pad://]&lt;/code&gt; is a shortcut to a user's scratch pad
&lt;/ul&gt;


&lt;p&gt;
&lt;h3&gt;&lt;a name="intonement" target="_self"&gt;&lt;hr&gt;&lt;/a&gt;Monks Solemn Intonement:&lt;/h3&gt;
&lt;CODE&gt;
righteousness ()
{
  perl -e'
  print "The troublesome entities, irksome to Monks:\n  "
     , (  join " and ",
	    map{
	    sprintf qq{$_ is safe as }.q{&amp;#}.qq{%d;}, ord ;
	       } qw/[ ]/  )
     , "\n";
'
}
&lt;/CODE&gt;&lt;/p&gt;



&lt;p&gt;&lt;a name="nypm-b.css"&gt;&lt;/a&gt;&lt;hr /&gt;
&lt;h3&gt;n.y.p.m.blue&lt;/h3&gt;
 &amp;ndash; my PerlMonks color theme for CSS-supporting browsers &amp;ndash; is now listed and maintained on [id://278939|this node].

&lt;hr /&gt;
&lt;a name="eyeballed"&gt;&lt;br /&gt;&lt;/a&gt;
  &lt;h4&gt;This list is of modules that I'm not currently using for anything but that I think I
      might want to at some future time&lt;/h4&gt;

  &lt;ul type="disc"&gt;
   &lt;li&gt;[dist://File-Find-Object|File::Find::Object]&lt;/li&gt;
   &lt;li&gt;[cpan://File::Inplace]&lt;/li&gt;
   &lt;li&gt;[cpan://File::Find::Wanted]&lt;/li&gt;
   &lt;li&gt;[cpan://Win32::SharedFileOpen]&lt;/li&gt;
   &lt;li&gt;[cpan://Mail::Pegasus]&lt;/li&gt;
   &lt;li&gt;[cpan://Mail::Internet]&lt;/li&gt;
   &lt;li&gt;[cpan://Module::Install::CustomInstallationPath]&lt;/li&gt;
  &lt;/ul&gt;
&lt;hr /&gt;

&lt;p&gt;&lt;h3&gt;&lt;a name="entities"&gt;&lt;/a&gt;A little parts bin of useful HTML entities for doing PM node markup&lt;/h3&gt;

&lt;pre&gt;
&amp;quot;&amp;#91;&amp;quot;      left  sq brkt            &amp;#91;      &amp;amp;#91;
&amp;quot;&amp;#93;&amp;quot;      right sq brkt            &amp;#93;      &amp;amp;amp;#93;
&amp;quot;&amp;#60;&amp;quot;      left  angle brkt         &amp;gt;      &amp;amp;#60; or &amp;amp;lt;
&amp;quot;&amp;#62;&amp;quot;      right angle brkt         &amp;lt;      &amp;amp;#62; or &amp;amp;gt;


&amp;quot;mdash&amp;quot;  em-dash                  &amp;#8212;    &amp;amp;#8212;
&amp;quot;ndash&amp;quot;  en-dash                  &amp;#8211;    &amp;amp;#8211;
&amp;quot;lsquo&amp;quot;  left  single quotation   &amp;#8216;    &amp;amp;#8216;
&amp;quot;rsquo&amp;quot;  right single quotation   &amp;#8217;    &amp;amp;#8217;
&lt;/pre&gt;&lt;/p&gt;

&lt;h3&gt;How I am creating ordinary paragraphs for Perlmonks node writeups these days:&lt;/h3&gt;

&lt;code&gt;
sh-prompt $ perl -MText::Wrap='wrap,$columns' \
   -MText::Textile=textile \
   -lp000we \
   'INIT{$columns=78} s{\cM?\cJ} [ ]g;
    $_=wrap(q[],q[   ],textile($_)).$\;' DRAFT.TMP
&lt;/code&gt;

&lt;p&gt;This should work fine in a MS Windows CMD shell too, with the alterations that
   (a) all single quotes around the -e script and perl flags are changed to double quotes,
   and (b) the line-continuation backslash/newlines are removed.&lt;/p&gt;

&lt;hr /&gt;
&lt;h2&gt;&amp;middot;Assorted Perl Stuff, and platform-specific notes&amp;middot;&lt;/h2&gt;
&lt;hr /&gt;

&lt;a name="whatwhere"&gt;&lt;/a&gt;&lt;h3 style="margin-top:4ex; text-align:center"&gt;Which and where is
   &amp;ldquo;&lt;tt&gt;Some::Perl::Module&lt;/tt&gt;&amp;rdquo;&lt;br /&gt;
 (finding VERSION and location of a Perl module):&lt;/h3&gt;

&lt;h5&gt;Preface:&lt;/h5&gt;
  &lt;p&gt;Depending on your OS and your work habits / preferences, you
  might want to use a Unix sh means of wrapping the Perl code
  implementing this technique (second thing below), or you might need a MS
  Windows console &lt;i&gt;helper&lt;/i&gt; (in the form of a DOSKEY macro,
  shown immediately below). I've named this critter different things
  in different manifestations on different machines at different
  times ... but now I am aiming to settle on it being named
  &lt;tt&gt;&lt;b&gt;PMTEST&lt;/b&gt;&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;
PMTEST=perl -le "do{$modn=$_;s!::!/!g;$_.=q[.pm];do{print qq[$modn is not installed.];next} unless eval qq#require(\"$_\");1# &amp;&amp; !$@;$modv=defined(${$modn.q[::VERSION]}) ? ${$modn.q[::VERSION]}:q{[version undefined]};$numtyp=2&gt;$modv=~tr/.// ?'%s':'% 6d';printf qq[  %-*s $numtyp in %s\n],(length&gt;30 ? 5+length:15+length),$modn,$modv,$INC{$_}}for @ARGV;" $*
&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;Sorry, those &lt;b&gt;long&lt;/b&gt; (wrapped) &lt;b&gt;ugly&lt;/b&gt; pieces of code
are what's required
   for MS Windows CMD shell. The command interpreter does not offer any means (that I
   have discovered) of using continuing statements on multiple lines &lt;em&gt;when defining a
   DOSKEY macro&lt;/em&gt;. Don't try a COPY-PASTE of the above, either, or you'll have to
   figure out how to remove every introduced newline inside the macro definition before
   the code will work. Trust me, you won't feel good about the wasted time.

&lt;p&gt;To use the above code, you must place it in a *.bat or *.cmd file
   and then "execute" it from the MS Windows console (the commandline interface,
   CLI, CMD.exe). 

&lt;p&gt;Invoke the &lt;b&gt;macro&lt;/b&gt; (not the .bat file it was saved in, which you
   execute &lt;em&gt;only once&lt;/em&gt; per each shell session or instance) with a
   single arg, the Perl-style name of a module (for ex. &amp;ldquo;&lt;tt&gt;pmtest CGI&lt;/tt&gt;&amp;rdquo; or
   &amp;ldquo;&lt;tt&gt;pmtest File::Find&lt;/tt&gt;&amp;rdquo;).

&lt;h5&gt;Here's the Unix shell (&lt;tt&gt;bash/ksh&lt;/tt&gt; etc.) rendition of the
  &lt;tt&gt;&lt;b&gt;pmtest&lt;/b&gt;&lt;/tt&gt; thing&lt;/h5&gt;

&lt;p&gt;&lt;code&gt;
# pmtest: bash reusable function authored by Soren Andersen
# license/terms of use/modification/redist: same as Perl
pmtest ()
{ 
    perl -e'
my$modn = my$mod = "'$1'";
$mod =~s@::@/@g; $mod.=q[.pm];
die ("module $modn not installed.\n",$@) if


   ! eval {require qq[$mod];};
my $modv = defined ${$modn.q[::VERSION]} ?
   ${$modn.q[::VERSION]} : q{[version undefined]};
my$numtyp= (2 &gt; $modv =~tr/.//) ? "%s" : "% 6d";
printf "  %-*s $numtyp in %s\n",
  length($modn) &gt; 30 ? 5+length($modn) : 15+length($modn),
  $modn, $modv, $INC{$mod};
';
    return 0
}&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;This also needs to be "gotten into" the bash session somehow. Ths canonical
   way of doing so is to include the above in a shell initialization file
   like &lt;tt&gt;~/.profile&lt;/tt&gt; or &lt;tt&gt;~/.bashrc&lt;/tt&gt;.

&lt;hr /&gt;
&lt;a name="msw-metafolders"&gt;&lt;/a&gt;
&lt;h3 style="margin-top:4ex; text-align:center"&gt;For contemplation by people who want to write software installers,
    Perl installation administrators, etc.:&lt;/h3&gt;
&lt;p&gt;In contrast with Unix-like platforms, MS Windows has it's own sense of Well-known Folders
   (not absolute filesystem "folders" but instead pointers to locations which can reasonably
   be expected to exist on most
   Windows machines, with some divergence between the bog-ordinary Workstation and the more
   complex Server kind of Windows installation).&lt;/p&gt;

&lt;p&gt;These are abstractions, &lt;em&gt;meta-directories&lt;/em&gt; if you like, which exist above the
   level of the actual filesystem and happen to be represented in the typical, default Windows ENV
   by variables like &lt;tt&gt;%APPDATA%&lt;/tt&gt; and &lt;tt&gt;%ProgramFiles%&lt;/tt&gt; and &lt;tt&gt;%ALLUSERSPROFILE%&lt;/tt&gt;.

&lt;p&gt;We can access the values assigned to these meta-directories using the API calls
   wrapped in the Win32.pm module (not in the core namespace which is automatically
   built in when Perl is created for a Windows system; the user has to explicitly
   say &lt;code&gt;use Win32;&lt;/code&gt; in order to make this work).&lt;/p&gt;

&lt;p&gt;Here's a simple one-liner to demonstrate:
&lt;code&gt;
 perl -MWin32 -le "my @ds=grep {/CSIDL_/} @{ [keys %Win32::] };
     do {printf qq/%31s =&gt; %s\n/, $_, Win32::GetFolderPath(&amp;{$Win32::{$_}}) }
       for map { $_-&gt;[0] } sort {$a-&gt;[1] &lt;=&gt; $b-&gt;[1]} map { [$_,&amp;{$Win32::{$_}}] } @ds"
&lt;/code&gt;
Note that we did not even need to know the particular names of the metadirectories
available on the specific version of Windows on which this is run, which is Kinda Cool
imho.&lt;/p&gt;

&lt;p&gt;Here's a way to get the location of the meta-directory of your choice, assuming that you
   choose with some clue to begin with ;-/  ... :
&lt;code&gt;
perl -MWin32 -le "my @ds=grep {/^CSIDL_/ &amp;&amp; /\U$ARGV[0]/} @{ [keys %Win32::] };
   do {printf qq/%31s =&gt; %s\n/, substr($_,6), Win32::GetFolderPath(&amp;{$Win32::{$_}}) }
     for @ds" profile
&lt;/code&gt;
This should display the Special Folders that are named *PROFILE* (in globbing terms) and
display the actual location(s) of such folders.&lt;/p&gt;

&lt;p&gt;Note also that the above commandlines aren't broken up in actual use, and will have to be mended
   by any who wish to try it out. &lt;strike&gt;MS Windows CMD shell doesn't allow multi-line commands
   even inside quotes&lt;/strike&gt; &lt;a name="caret-enlightenment"&gt;&lt;u&gt;&lt;small&gt;UPDATE&lt;/u&gt;:&lt;/small&gt;&lt;/a&gt;
   You &lt;strong&gt;can&lt;/strong&gt; create multi-line
   Perl one-liner (console input) scripts in the interactive Windows CMD shell. You will escape the newline with
   &lt;strong&gt;the ^ character&lt;/strong&gt; (caret) but this does not work to span lines &lt;em&gt;inside&lt;/em&gt; quotes.
   Instead, you will use &lt;code&gt;-e&lt;/code&gt; repeatedly, just as you may do in a *nix sh-type shell. Here's the
   oneline demo above, thanks to [pKai] who educated me on this!:
&lt;code&gt;perl -MWin32 -e "my @ds=grep {/CSIDL_/} @{ [keys %Win32::] };" ^
-e "do {printf qq/%31s =&gt; %s\n/, substr($_=&gt;6), Win32::GetFolderPath(&amp;{$Win32::{$_}}) }" ^
-e "for map { $_-&gt;[0] } sort {$a-&gt;[1] &lt;=&gt; $b-&gt;[1]} map { [$_,&amp;{$Win32::{$_}}] } @ds"
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here's a &lt;b&gt;DOSKEY macro&lt;/b&gt;-ized version of the code above. Handy for interactive CMD shell
   use where you need to quickly check the list of Special Folders (or a particular group of them).
&lt;code&gt;
:: MS Windows BAT/CMD syntax. Wraps a Perl one-liner program.
DOSKEY  SPECIALFOLDERS=perl -MWin32 -e "my @ds=grep {/CSIDL_/} @{ [keys %%Win32::] };
   do {printf qq/%%24s=&gt;%%s\n/, substr($_=&gt;6), Win32::GetFolderPath( &amp;{$Win32::{$_}} )}
       for map { $_-&gt;[0] } grep {(0+@ARGV ? $_-&gt;[0]=~m&lt;$ARGV[0]&gt;i : 1)}
               sort {$a-&gt;[1] &lt;=&gt; ${b}-&gt;[1]} map { [$_,&amp;{$Win32::{$_}}] } @ds" $*
&lt;/code&gt;
&lt;em&gt;Remember to reformat the code above so that no linebreaks are present. The line that begins
    with &lt;/em&gt;&lt;tt&gt;DOSKEY&lt;/tt&gt; &lt;em&gt;needs to be &lt;b&gt;one continuous line&lt;/b&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h3 style="margin-top:4ex; text-align:center"&gt;&amp;middot;For MSWin
-using Monks&amp;middot;&lt;/h3&gt;
&lt;hr width="69%"&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;dt&gt;You can emulate the Unix sh-shell user-defined function examples
            shown on this node to some extent by using &lt;em&gt;DOSKEY macros&lt;/em&gt;.&lt;/dt&gt;
        &lt;dd&gt;&lt;p&gt;
            DOSKEY still exists on Windows XP, Vista, and 7. In a CMD shell you
            can query what macros you've defined by doing
&lt;code&gt;D:\ &gt; DOSKEY /macros
&lt;/code&gt;
            and can define new macros by saying something like this:
&lt;code&gt;D:\ &gt; DOSKEY perlversion=perl -le "printf qq[%vd$/]=&gt; $^V"
&lt;/code&gt;

            This is a somewhat trivial and quite contrived example of course. ;-)

            &lt;p&gt;Here's a less contrived example. This will make cli work easier if you
               find yourself working in a directory named like &lt;tt&gt;C:\Documents and Settings\You There&lt;/tt&gt;...
            &lt;p&gt;
               &lt;code&gt;DOSKEY compactcwd=FOR /F "delims=*" %%N IN ("%CD%") DO CD %%~sN&lt;/code&gt;
            &lt;/p&gt;

            &lt;p&gt;
            There are some DOSKEY/Perl gotchas to look out for. Note that this is not an exhaustive list.
            &lt;ul&gt;&lt;li&gt;The special tokens $* and $B, $G, $L and $T (case does not matter) will be interpreted by &lt;em&gt;DOSKEY&lt;/em&gt;
                    instead of DWYM with Perl This means that scalar variables must not
                    be named &lt;code&gt;$[Bb].*&lt;/code&gt; or &lt;code&gt;$[Tt].*&lt;/code&gt;, using regexp
                    meta-syntax to explain. You could say &lt;code&gt;${Beginning}&lt;/code&gt; or
                    &lt;code&gt;${tangent}&lt;/code&gt;, though.
                &lt;li&gt;The % sigil in a hash variable name (or a printf format, or anywhere else) must be doubled if you
                    are trying to set up DOSKEY macro definitions in a batch
                    file script. The first one is "eaten". (&lt;b&gt;Note:&lt;/b&gt; I've some reason
                    to think that escaping a % with a caret ^ &lt;i&gt;might&lt;/i&gt; work, but I
                    haven't had time to test this. I think that in general, quoting with
                    the ^ in CMD doesn't work inside double quotes.)
            &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;dt&gt;Batchfile as DOSKEY macro-file (thanks, [http://ben.versionzero.org/w/index.php5?title=Special:Cite&amp;page=Doskey_Macros&amp;id=3271|Ben Burnett]):&lt;/dt&gt;
&lt;dd&gt;The macros discussed above can be cleverly included in a CMD
session using this as a file (say, save it as PMACROS1.bat)
and starting CMD from a shortcut like this:
&lt;code&gt;%SYSTEMROOT%\System32\CMD.exe /E:on /F:on /V:on /K CD %USERPROFILE% &amp; PMACROS1.bat&lt;/code&gt;

&lt;p&gt;&lt;code&gt;
;= @echo off
;= rem Call DOSKEY and use this file as the macrofile
;= %SystemRoot%\system32\DOSKEY /listsize=1024 /macrofile=%0%
;= rem In batch mode, jump to the end of the file
;= goto end
;= rem ******************************************************************
;= rem *   Filename: DOSKEY-M1.cmd
;= rem *    Version: 2.0
;= rem *     Author: Soren Andersen &lt;somian08@gmail.com&gt;
;= rem *    Purpose: Some useful perl 1-liners
;= rem *  license/terms of use/modification/redist: same as Perl
;= rem *  Last modified: Wed 28 Dec 2011
;= rem *    History: 
;= rem ******************************************************************

;= rem PMTEST: Test for use of a Perl module
PMTEST=perl -le "do{$modn=$_;s!::!/!g;$_.=q[.pm];do{print qq[$modn is not installed.];next} unless eval qq#require(\"$_\");1# &amp;&amp; !$@;$modv=defined(${$modn.q[::VERSION]}) ? ${$modn.q[::VERSION]}:q{[version undefined]};$numtyp=2&gt;$modv=~tr/.// ?'%s':'% 6d';printf qq[  %-*s $numtyp in %s\n],(length&gt;30 ? 5+length:15+length),$modn,$modv,$INC{$_}}for @ARGV;" $*


;= rem SPECIALFOLDERS: Display Well-Known Folder pathnames
SPECIALFOLDERS=perl -MWin32 -e "my @ds=grep {/CSIDL_/} @{ [keys %Win32::] }; do {printf qq/%24s=&gt;%s\n/, substr($_=&gt;6),Win32::GetFolderPath(&amp;{$Win32::{$_}})} for map {$_-&gt;[0]} grep {(0+@ARGV ? $_-&gt;[0]=~m#$ARGV[0]#i : 1)} sort {$a-&gt;[1] &lt;=&gt; ${b}-&gt;[1]} map {[$_,&amp;{$Win32::{$_}}]} @ds" $*
;= :end
&lt;/code&gt;&lt;/dd&gt;
    &lt;/li&gt;


&lt;!--
    &lt;li&gt;&lt;dt&gt;The CPAN release of PPM (the &lt;em&gt;&amp;quot;Programmer's/Perl Package
            Manager&amp;quot;&lt;/em&gt;) seems quite broken in several ways.&lt;/dt&gt;
            &lt;dd&gt;
            &lt;/dd&gt;&lt;/li&gt;
--&gt;

&lt;/ul&gt;

&lt;!-- bmake for not-only-NetBSD systems is at
  http://www.crufty.net/ftp/pub/sjg/bmake.tar.gz
 --&gt;

&lt;table border=0 bordercolor=black cellpadding=8 align=left&gt;
&lt;caption
         align=top
         style="font-size:11pt;padding-bottom:1em;"&gt;Documentation for the current version of PPM (3),
   the crufty thingy that many MSwin users rely on to install new packaged Perl modules:
&lt;/caption&gt;
   &lt;tr&gt;
       &lt;td style="padding:4px 48pt"&gt;[http://aspn.activestate.com/ASPN/docs/ActivePerl/bin/ppm3.html|ppm3 Documentation]
  &lt;/td&gt;&lt;/tr&gt;
&lt;ul type=square&gt;
   &lt;tr&gt;
       &lt;td style="padding:4px 48pt"&gt;
          &lt;li&gt;You can &lt;em&gt;easily break your PPM v3 unknowingly&lt;/em&gt; merely by
          updating &lt;tt&gt;[cpan://Text::Autoformat]&lt;/tt&gt; &amp;ndash; see


[http://bugs.activestate.com/buglist.cgi?querytype=simple&amp;type%3Ashort_desc%3Along_desc%3Abug_file_loc%3Astatus_whiteboard%3Akeywords=substring&amp;OR%3Ashort_desc%3Along_desc%3Abug_file_loc%3Astatus_whiteboard%3Akeywords=Text&amp;submit=Search&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=LIMITATION&amp;component=Documentation&amp;component=Install&amp;component=Install%2FUninstall%2FUpgrade&amp;component=Packages&amp;component=Profiles&amp;component=Properties%2FDescribe&amp;component=Repository%2FTarget&amp;component=Search%2FQuery|Bug Listing]


  &lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;
       &lt;td style="padding:4px 48pt"&gt;
         &lt;li&gt;[http://aspn.activestate.com/ASPN/CodeDoc/PPM/PPM/XML/PPD.html|PPD file format] &amp;ndash; appears
to have not been updated since the 5.6 series releases at
      ActiveState. Please note that it makes
      no mention whatsoever of a parameter or field named
      &lt;b&gt;&lt;tt&gt;ARCHITECTURE NAME&lt;/tt&gt;&lt;/b&gt; then go and in contrast
      look at some example .PPD files from the various repositories.
     &lt;p&gt;&lt;span style="font-variant:small-caps;font-size:smaller"&gt;Note Added:&lt;/span&gt;
     &lt;br /&gt;
      This seems to be explained by
   [http://aspn.activestate.com/ASPN/Mail/Message/ppm/1577538|this brief excerpt]
      from the ppm Mailing List, authored by Jan Dubois:
  &lt;blockquote&gt;
&amp;quot;Since Perl 5.6 and Perl 5.8 are not binary compatible, we started appending
the Perl version number to the architecture string in ActivePerl 5.8.  Try this:&lt;pre&gt;
     &amp;lt;ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.8" /&amp;gt;
&lt;/pre&gt;
Both ppm2 and ppm3 in ActivePerl 8xx have been patched to use these architecture names.&amp;quot;
  &lt;/blockquote&gt;
&lt;/td&gt;
   &lt;/tr&gt;


   &lt;tr&gt;
       &lt;td
 style="padding:4px 48pt"&gt;&lt;li&gt;A (perhaps) [http://www.bribes.org/perl/ppmdir.html|little-known, rich PPM repository] to add to your list that ppm searches.

       &lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;&lt;td
 style="padding:4px 48pt"&gt;&lt;li&gt;For Perl5.8 you may &lt;a name="checkAS"
    href="http://ppm.activestate.com/BuildStatus/5.8.html"&gt;check status
                      of ActiveState's builds&lt;/a&gt; of packages (modules).&lt;/td&gt;
   &lt;/tr&gt;
&lt;/ul&gt;
&lt;/table&gt;

&lt;p&gt; &amp;nbsp; &lt;/p&gt;
&lt;table border=0 bordercolor=black cellpadding=8&gt;
&lt;caption
         align=top
         style="font-size:11pt;padding-bottom:1em;"&gt;&lt;a name="dmake"&gt;The dmake utility&lt;/a&gt;:&lt;/caption&gt;
   &lt;tr&gt;
       &lt;td&gt;
   &lt;p&gt;
  The recommended tool for building Perl from the source kit using a Free C/C++ compiler
  ([http://www.mingw.org/|MinGW]), is &lt;em&gt;dmake&lt;/em&gt;. This variant of the classic make tool is now
  maintained by OpenOffice.org folks (&lt;em&gt;"tools"&lt;/em&gt; Project) and the [http://tools.openoffice.org/dmake/dmake_4.11.html|dmake manpage is online].
  &lt;/p&gt;

   &lt;p&gt;
  &lt;em&gt;dmake&lt;/em&gt; on CPAN: [http://search.cpan.org/dist/dmake/|is now maintained by
    Steve Hay] and is no longer the extremely old code offered years ago by Gurusamy
    Sarathy. Steve is building it using MSVC++ from the OO.org source mentioned above.
   &lt;/p&gt;
       &lt;/td&gt;
   &lt;/tr&gt;
&lt;/table&gt;

&lt;br clear=left&gt;
&lt;h3 style="margin-top:4ex; text-align:center"&gt;&amp;middot;For EveryMonk&amp;middot; (any platform)&lt;/h3&gt;
&lt;hr width="69%"&gt;

&lt;h2 style="text-align:left"&gt;Investigate the modules and libraries your Perl installation
    has access to:&lt;/h2&gt;
&lt;a name="Inside_tool"&gt;&lt;/a&gt;&lt;p&gt;
  [http://search.cpan.org/dist/Inside/|Tom Phoenix' script "Inside" on CPAN].

&lt;h2&gt;Need Help Using CPAN Effectively?&lt;/h2&gt;

&lt;a name="cpanurllist"&gt;&lt;/a&gt;
&lt;h4&gt;Preflight-check for &lt;tt&gt;CPAN.pm&lt;/tt&gt; mirrors (using system `ping(1)'):&lt;/h4&gt;
&lt;code&gt;
perl -MCPAN -l \
    -e 'CPAN::Config-&gt;load;' \
    -e '@pcnt= $^O eq "cygwin"? qw(-n 2):qw(-c 2);' \
    -e ' do{ $fn=$_;
             if (s#^\w+p://([^/]+).*#$1#) {
               print $fn; system("ping",@pcnt,$_); print "\n","-"x52
             } }
         for @{ $CPAN::Config-&gt;{urllist} }'
# code tested on cygwin and GNU/Linux
&lt;/code&gt;

&lt;a name="cpan mirrormaster freshness"&gt;&lt;/a&gt;
&lt;h4&gt;Find your system's master list of CPAN mirror sites, maybe freshen it up:&lt;/h4&gt;

&lt;code&gt;
perl -MFile::stat -MCPAN -MLWP::Simple=mirror -le 'CPAN::Config-&gt;load; my $fhost;' \
  -e 'my $Mdat = $CPAN::Config-&gt;{keep_source_where}.q[/MIRRORED.BY];' \
  -e 'if (-e $Mdat and -M _ &lt; 14) { print qq[$Mdat: freshness OK, last modified: ]' \
  -e ' .gmtime stat($Mdat)-&gt;mtime()' \
  -e '} else { ($fhost)=grep(/^http/,@{$CPAN::Config-&gt;{urllist}});' \
  -e 'die "no suitable cpan http mirror host" if !$fhost;' \
  -e 'printf q[%s],qq[File $Mdat not found or stale, will d/l fresh from $fhost ...];' \
  -e 'mirror($fhost .q[MIRRORED.BY] , $Mdat) and print q[ ].gmtime(stat($Mdat)-&gt;mtime)}'
&lt;/code&gt;

&lt;p&gt;Wrap the code above in a function in your shell initfile if you are a &lt;tt&gt;bash&lt;/tt&gt;
  user and you like to have such conveniences at your "fingertips", as I do: &lt;/p&gt;
&lt;code&gt;
function mirrorsrefresh
{
    &lt; above perl code here &gt;
}
&lt;/code&gt;

&lt;p&gt;&lt;em&gt;More tips on coping with&lt;/em&gt; &lt;b&gt;&lt;tt&gt;CPAN.pm&lt;/tt&gt;&lt;/b&gt; &lt;em&gt;can be found&lt;/em&gt;
[id://282325|here at "dumpcpanurls" Snippet].
&lt;/p&gt;

&lt;br /&gt;

&lt;h4&gt;Easy way to see that script output gets a terminating newline automatically:&lt;/h4&gt;

&lt;h5&gt;In scripts:&lt;/h5&gt;
&lt;code&gt;
       #! /usr/bin/perl -l
       #  *or*
       $\ = "\n";  # do it once and won't have to again.
&lt;/code&gt;
&lt;h5&gt;In one-liners (script is "&lt;tt&gt;-e&lt;/tt&gt;"):&lt;/h5&gt;
&lt;code&gt;   $ perl [other flags] -le "[some code]"&lt;/code&gt;

&lt;br&gt;

&lt;h4&gt;Filter newlines out of systems call results&lt;/h4&gt;

&lt;p&gt;
&lt;code&gt;%hash = ( key =&gt; grep [ chomp ], `which ps` );
&lt;/code&gt;
which does the same things as:
&lt;code&gt;%hash = ( key =&gt; grep {chomp || 1} `which ps` );

&lt;/code&gt;
&lt;p style="font-size:small"&gt;Attribution: seen on &lt;tt&gt;comp.lang.perl.misc&lt;/tt&gt;
in msgid &lt;tt&gt;&amp;lt;3F447BDB.9928761A@acm.org&amp;gt;&lt;/tt&gt;.&lt;/p&gt;



&lt;h4&gt;Slurp an entire file in&lt;/h4&gt;
&lt;p&gt;
&lt;code&gt;
# Previous declaration of "$filename" is assumed.
my $data = do{local(@ARGV,$/) = $filename;&lt;&gt;}
&lt;/code&gt;
&lt;p style="font-size:small"&gt;Attribution: [id://287794|here]&lt;/p&gt;



&lt;h4&gt;Another way to do this, faster and better:&lt;/h4&gt;
&lt;code&gt;
my $data = do{ open local(*FH),$filename or die "can't open: $!" ;
                   sysread( FH, my $buf, -s FH ) ;  $buf ;
           };

&lt;/code&gt;



&lt;h4&gt;Something that may be called "The [bart|Bartian] Transposition" someday:&lt;/h4&gt;

&lt;code&gt;
(@a[0 .. ($#a = $#b)], @b) = @{[ @b, @a]}  # swap two arrays
&lt;/code&gt;



&lt;h4&gt;Where's my HOME???&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;
my $home = $ENV{'HOME'} || $ENV{'LOGDIR'} ||
            (getpwuid($&lt;))[7] || die "WAAAAA! I'm HOMEless!\n";
# from `perldoc perlop'.
&lt;/code&gt;


&lt;a name="OpcodeScan"&gt;&lt;hr&gt;&lt;/a&gt;

&lt;h3&gt;Something really special:&lt;/h3&gt;

&lt;h4&gt;Opcode scanning for &lt;tt&gt;Safe.pm&lt;/tt&gt;&lt;/h4&gt;
&lt;p&gt;Dump a string of opcode names that can be fed to &lt;tt&gt;Safe::new-&gt;permit&lt;/tt&gt;. Based on knowledge / shell
elan shared by [ysth].

&lt;code&gt;
$ perl -MO=Concise,-exec &lt;FILENAME.pl&gt; \
 | perl -lnaF -e '$_=$F[2]; s/\W.*//; $h{$_}=0; END{ print join " "=&gt;keys %h}'
&lt;/code&gt;

&lt;a name=idemuniq&gt;&lt;/a&gt;
&lt;hr&gt;

&lt;h4&gt;Created &lt;tt&gt;30 Jul 2003 EDT (GMT+4)&lt;/tt&gt;:&lt;br /&gt;
Updated &lt;tt&gt;Thu Jul 31 2003&lt;/tt&gt;&lt;br /&gt;
Updated &lt;tt&gt;Sun Jul 04 2004&lt;/tt&gt;&lt;br /&gt;
Regarding the Meditation [id://279088|on List Cleanup]&lt;/h4&gt;


&amp;#91;After getting helpful advice on the node above I rewrote the snippet (as a complete scriptlet) ... several times (mostly recently on July 4 2004)&amp;#93;

   &lt;p&gt;
     The goal is to eliminate duplicates without disturbing existing
     ordered-ness. Thus the property of mundane hash assignment such
     that duplicates disappear is not sufficient by itself, but in a
     combination demonstrated in this code below, the truth-ness of
     a hash value can be used to prevent duplicate array entries.
   &lt;/p&gt;
&lt;p&gt;


&lt;table cols=1 rows=1 border=0 align=center
 cellpadding=11 width="78%" style="background-color:white"&gt;
&lt;tr style="background-color:white"&gt;&lt;td style="background-color:white"&gt;&lt;font color="#3f1f1f"&gt;&lt;pre style="background-color:white"&gt;&lt;font color="#8b008b"&gt;#! /usr/bin/env perl&lt;/font&gt;
&lt;font color="#0000cd"&gt;# &amp;quot;uniqnord&amp;quot; - remove dups from a list of identifiers.&lt;/font&gt;
&lt;font color="#a52a2a"&gt;&lt;b&gt;use strict&lt;/b&gt;&lt;/font&gt;; &lt;font color="#a52a2a"&gt;&lt;b&gt;use warnings&lt;/b&gt;&lt;/font&gt;;

&lt;font color="#005f5f"&gt;$,&lt;/font&gt; = ! &lt;font color="#a52a2a"&gt;&lt;b&gt;-t&lt;/b&gt;&lt;/font&gt; &lt;font color="#005f5f"&gt;STDOUT&lt;/font&gt; ? &lt;font color="#ff1493"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#6a5acd"&gt;\n&lt;/font&gt;&lt;font color="#ff1493"&gt;&amp;quot;&lt;/font&gt; : &lt;font color="#ff1493"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff1493"&gt; &lt;/font&gt;&lt;font color="#ff1493"&gt;&amp;quot;&lt;/font&gt; ;
&lt;font color="#a52a2a"&gt;&lt;b&gt;my&lt;/b&gt;&lt;/font&gt; &lt;font color="#005f5f"&gt;%seen&lt;/font&gt; = (); &lt;font color="#005f5f"&gt;$\&lt;/font&gt; = &lt;font color="#ff1493"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#6a5acd"&gt;\n&lt;/font&gt;&lt;font color="#ff1493"&gt;&amp;quot;&lt;/font&gt;;
&lt;font color="#a52a2a"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/font&gt; &lt;font color="#005f5f"&gt;STDOUT&lt;/font&gt;  &lt;font color="#a52a2a"&gt;&lt;b&gt;join&lt;/b&gt;&lt;/font&gt;(&lt;font color="#005f5f"&gt;$,&lt;/font&gt; =&amp;gt;
    &lt;font color="#a52a2a"&gt;&lt;b&gt;grep&lt;/b&gt;&lt;/font&gt; {!&lt;font color="#005f5f"&gt;$seen&lt;/font&gt;{&lt;font color="#005f5f"&gt;$_&lt;/font&gt;}++} &lt;font color="#a52a2a"&gt;&lt;b&gt;map&lt;/b&gt;&lt;/font&gt; {
      &lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt; (&lt;font color="#a52a2a"&gt;&lt;b&gt;/&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff1493"&gt; &lt;/font&gt;&lt;font color="#6a5acd"&gt;+&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;/&lt;/b&gt;&lt;/font&gt;) { &lt;font color="#005f5f"&gt;$/&lt;/font&gt;=&lt;font color="#ff1493"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff1493"&gt; &lt;/font&gt;&lt;font color="#ff1493"&gt;&amp;quot;&lt;/font&gt; ; &lt;font color="#005f5f"&gt;@_&lt;/font&gt;=&lt;font color="#a52a2a"&gt;&lt;b&gt;split&lt;/b&gt;&lt;/font&gt; }
        &lt;font color="#a52a2a"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/font&gt;    { &lt;font color="#a52a2a"&gt;&lt;b&gt;chomp&lt;/b&gt;&lt;/font&gt; ; &lt;font color="#005f5f"&gt;$_&lt;/font&gt; }} &amp;lt;&amp;gt;)
&lt;font color="#0000cd"&gt;__END__&lt;/font&gt;
&lt;/pre&gt;&lt;/td&gt;
  &lt;/tr&gt;&lt;tr STYLE="padding:3 9;background-color:#000;"&gt;
  &lt;td&gt;&lt;font color="#ffffff"&gt;The real &lt;tt&gt;code&lt;/tt&gt;:&lt;br /&gt;
&lt;code&gt;#! /usr/bin/env perl
# "uniqnord" - remove dups from a list of identifiers.
use strict; use warnings;

$, = ! -t STDOUT ? "\n" : " " ;
my %seen = (); $\ = "\n";
print STDOUT  join($, =&gt;
    grep {!$seen{$_}++} map {
      if (/ +/) { $/=" " ; @_=split }
        else    { chomp ; $_ }} &lt;&gt;)
__END__
&lt;/code&gt;&lt;/font&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;h3&gt;System-ology: monospaced fonts currently on my M$ box&lt;/h3&gt;
&lt;TABLE&gt;&lt;TR&gt;
&lt;TH style="text-</field>
<field name="lasttime">
2013-05-22 03:38:34</field>
<field name="experience">
2490</field>
<field name="user_scratchpad">
360135</field>
<field name="imgsrc">
318467</field>
<field name="timeformat">
%Y-%b-%d %H:%M %Z</field>
<field name="numwriteups">
200</field>
<field name="location">
Buffalo CITY / New York STATE / U.S.A. NATION / North American CONTINENT / Western HEMISPHERE / Terra PLANET / Sol SYSTEM / MilkyWay GALAXY / "local" GROUP / Virgo SUPERCLUSTER</field>
<field name="timezone">
America/New_York</field>
<field name="codewrapoff">
</field>
<field name="codewraplength">
32765</field>
<field name="codeautowrap">
on</field>
<field name="codeprefix">
</field>
<field name="codebig">
on</field>
</data>
</node>
