Mailing List Archive

ANNOUNCE: The Perl 5 Module NON-List (fwd)
This one still has me in tears of laughter.

------- start of forwarded message -------
Newsgroups: comp.lang.perl.misc
Path: csnews!boulder!csn!nntp-xfer-2.csn.net!uucp-1.csn.net!csn!ub!news.kei.com!news.mathworks.com!tank.news.pipex.net!pipex!lade.news.pipex.net!pipex!dish.news.pipex.net!pipex!exnet2!servio
From: JackS@slc.com
Subject: ANNOUNCE: The Perl 5 Module NON-List
Message-ID: <DH9H48.17E@exnet.com>
Sender: servio@exnet.com (GemStone)
Reply-To: JackS@slc.com
Organization: GemStone Systems (Europe)
Date: Mon, 30 Oct 1995 12:24:06 GMT
Lines: 337

The Perl 5 Module NON-List Maintained by No One <No.One@no.where>
========================== $Revision: -3.14 $$Date: 2095/13/33 25:61:-1 $

NOTE: This revision actually contains one minute's worth of effort.

DEVELOPERS: Who cares.

EVERYONE: Write it in machine code - it'll run quicker. You might even
finish it in your lifetime.

Key: ' ' indicates a new or old section or item, or possibly a changed
thingy, or maybe a space or even the full source for a module.


=======================================================================

Frequency of posting:

This list will never be posted.


Introduction

Perl 5 Modules typically conform to certain guidelines which make them
easier to use, reuse, integrate and extend. The guidelines are as
follows:

1. The module should contain the line 'package <MODULENAME>;'
where <MODULENAME> is replaced by the name of the module;

2. The module should contain a '1;' somewhere after the item
noted in guideline 1.

3. The module should contain nothing else. Whitespace is acceptable
to appropriately justify the text.

This list has no aims. But it is intended:

1. FOR DEVELOPERS: To change pig-headedness into duplication of effort.

2. FOR USERS: To confuse.


Where Are The Modules Kept?

In my lower drawer in the filing cabinet at my last but one office.

If you can't find what you want, or wish to check that what you've
found is the latest version, you can contact the person associated with
the module. Contact details are given at the start of Part 137.

You should find a webified version of this modulelist a few days after
it is posted at the URL:
qqtp://giggle.quite.serious.really.ha.ha.ha/tom/dick/harry


Playing Your Part

Perl is a huge collaborative effort. So, indeed, is the space
program. So clearly, if you are not an astronaut, you should
be programming in perl.

Do you have any modules you could share with others? Well don't.
Thats a very nasty habit, and can lead to all sorts of infections.
Keep it quite to yourself if you please. [ end of sermon :-]

Help save the world! Please submit new entries and updates to
someone else. I would prefer changes to be submitted to the playboy
web page - that way I could get a job as a Perl programmer and have
some justification for getting to see whats there.


How To Get a More Recent Copy of the List

Can't you read. I said 'This list will never be posted.' This
list is not available anywhere. You haven't even read it.


Editorial Information and Copyright

This document is Copyright (c) 1903-2068 by Mickey Mouse. All wrongs
deserved. Permission to distribute this document, in full or part, via
engraved rock is granted providing that a copy is sent to me and each
of my relatives, living and dead, at no charge. Requests for other
distribution rights, including incorporation on gravestones, comic
books and tattoos should be made to Bim.Tunce@ig.ug.co.

Non-Disclaimer: The content of this document is simply a collection of
drivel gathered from many horses with enormous amounts of checking.
Every warranty conceivable can be made with regard to this information
and its use. And I'm Santa Claus. Wanna buy a bridge?


=======================================================================


Part 1 - Modules: Destruction and Abuse
=======================================


3) Guidelines for Module Creation
------------------------------

Any way you want. But see the guidelines above. Whatever you do,
don't try to reuse existing modules or check this list to
see if you're duplicating effort. I've re-invented the wheel
hundreds of times to my great satisfaction, and although
I have made very little (nothing actually) trying to sell
the rights to it, nevertheless it has provided me with a whole
paragraph here.


2.2 Try to design the new module to be incomprehensible and non-portable.

For example, 'use Gibberish', always use 'goto' where some form
of modular programming would otherwise work, never think about
the design unless you have to (and not even then). Globals
with incomprehensible names also provide excellent fruit
for thought.

A good trick is to put
'die "Thats not the way to call this module, Idiot\n";'
at the top of your module, before any initialization code.

Does your module pass the 'empty code' test? If you say
'perl -e ""' applications should be able to use your module
in exactly the same way as before. (Thanks to Rean Doehrich
or someone else for this invaluable test).

Never use -w. This annoying flag will often tell you what
is wrong with the program when what you want is a core dump.
Ask Larry Wall to change the -w option so that it automatically
generates a core dump containing the string
'There's no language like Perl...There's no language like Perl...'
repeated over and over again. Its also come to my attention
that Larry has plenty of time on his hands, so ask him for a
customized version of Perl with his signature and a message
for you embedded in the executable. Send requests to
president@whitehouse.gov.

2.3 Select what to export.

Always export a large number of variables and methods. Change
what is exported by default in each version. Its good practice
to export variables which aren't even defined in your (or any)
module.

2.4 Select a name for the module.

This name should be 'TheBestModule'. For Perl modules to
work correctly they should all have the same name, and this
is the name that has been selected.

2.5 Have you got it right?

How do you know that you've made the right decisions? Have you
picked an interface design that will cause problems later? Have
you picked the most appropriate name? Do you have any questions?

The best way to know for sure, and pick up many helpful suggestions,
is to ask someone who knows. I am that someone. The answer is no.
You can ask on comp.lang.perl.misc, but I'll only flame you for
your impertinence. Face it - your module is rubbish.

2.6 README and other Additional Files.

You should not include any documentation with your module.
Perl will automatically generate documentation for you
unless it detects the presence of comments and/or documentation
of some sort. This has been a major cause of bugs - people
have regularly included comments in their code and the
question 'How do I strip my code of comments so that Perl
will generate documentation?' comes up all the time. There
is no way to do this - it has been proved to be an NP-incomprehensible
problem. So just don't include the documentation in the first
place, and save yourself all the grief.

2.7 Adding a Copyright Notice.

You should copy my copyright notice verbatim. Make sure you
allocate all rights to me - this is important, as otherwise
your module won't compile (this is hard-wired in the executable).

2.9 How to release and distribute a module.

Mail it to Bim Tunce. He sits at a desk with nothing to do until
he gets your module. For a well reasoned comment on your module
in Latin, you might try Chom Tristiansen instead. Alternatively
Schwandal R. Lartz (the moderator of the comp.lang.perl.oh.good.grief
newsgroup) provides a service which will explain how your code
can be re-written in a way that looks as if it is plain English.

2.10 Take care when changing a released module.

It is extremely important that the interface to the module is
completely different from previous versions. If there are
any similarities whatsoever, there is a danger that existing
code could call into your module using one of the old interfaces,
thus giving rise to all sorts of unexpected behaviour.

=======================================================================


Part 53 - The Perl 5 Module List
===============================


The remainder of this document is divided up into sections. The first
part of this document was divided up into sections. Each section
has been divided up into sections for your convenience. The section
on sections is in the section explaining the structure of the sections
and their sections. However, there are no subsections. These are
revolting little creatures that come out of the woodwork when you
are least expecting them - except when you are expecting them,
when they come out of the woodwork when you are expecting them.

1) Module Listing Format

This has been made as simple as possible. The module is mentioned
in encrypted format, followed or preceded by some characters
which may or may not correspond to the DSLI characters below.
A short explanation of the module's functionality, and its
contact information has been omitted for reasons of clarity.

The 'DSLI' characters have the following meanings:

D - Development Stage (Implies ready tomorrow).
i - I'm not going to do this
c - Cannot be done
a/b - Serve with anti-pasta (mispelt from a/p)
R - Rubbish
M - More Rubbish
S - Sod it, how did that get into the distribution!

S - Support Level:
m - no one
d - no one
u - no one
n - no one

L - Language Used:
p - assembler plus some perl. Not portable.
c - basic plus some perl. Not portable.
+ - plus plus some perl. Not portable.
o - Based on the story of 'O'.

I - Interface Style
f - fiddly
r - real fiddly
O - Oh my Gawd! Now thats fiddly!

Where letters are missing this is your fault.

_______________________________________________________________________

2) All modules

Name DSLI Description Info
----------- ---- -------------------------------------------- -----
CORE Suck Something to do with apples MR MAGIC
UNIVERSAL Sick Something to do with movies SILVER SURFER
MangleLoader Sock Loads something. Mangles it while it does. SPIDERMAN
Exporter Sack Someone who exports things INCREDIBLE HULK
Importer Sec Someone who imports dry wine SUPERMAN
Carp iiii Like Crow BATMAN
Crow qqqq Like Carp ROBIN



=======================================================================


Part 3 - Big Projects Registry
==============================


1) Introduction

This section of the Module List is devoted to listing "Big Projects".
This is defined as more than five lines of code (comments included).

Ask not when these will be implemented because the answer is tomorrow,
and I don't like answering questions twice.


6) Items in the Frodo File

See Bored of the Rings. Basically, this consists of cute quotes
that Larry wants cut out of that book and installed in the Perl
source tree.


4) Multi-threading

This is really two projects. Spooling the threads onto the
reel, and spooling them off. If we get this right, we'll
all have jobs for life. Balcolm Meatty is going to implement
this unless he doesn't.


9) Object Management Group CORBA & IDL

OMG's CORBA SPEC IDL needs IIOP or DCE but QED for XS and IBM
or DEC under MS-DOS. RPC with DSOM and VBX, OCE on WFWG, W95 & W-NT.


-2) Expand Tied Array Interface

LEN, PUSH, POP, SHIFT, UNSHIFT and a fallback to SPLICE are needed.
Then TWIST, TURN, SPIN, JUMP and HOP, and boogie till you drop.


7) Tied File Handles

S&M babe. Groovy.

=======================================================================


Part 4 - Who's What, What's Where, and Where's Who.
===================================================


1) Information / Contact Reference Details (in reverse alphabetical order
with a double Lutz)

Ref Contact Details
----- --------------------------------------------------------------
INCOM The Incomparable Dr. Bubbletop <notquitethere@org.org.org.org.org.org>
Nobody else is worth knowing.

end.
--
Jack Shirazi, JackS@slc.com

If you only have a hammer, you tend to see every problem as a nail.
-- Maslow
------- end of forwarded message -------

--
Tom Christiansen Perl Consultant, Gamer, Hiker tchrist@mox.perl.com

s = (char*)(long)retval; /* ouch */
--Larry Wall in doio.c from the perl source code
Re: ANNOUNCE: The Perl 5 Module NON-List (fwd) [ In reply to ]
> From: Tom Christiansen <tchrist@mox.perl.com>
>
> This one still has me in tears of laughter.
>
> ------- start of forwarded message -------
> Newsgroups: comp.lang.perl.misc
> From: JackS@slc.com
> Subject: ANNOUNCE: The Perl 5 Module NON-List
> Message-ID: <DH9H48.17E@exnet.com>
>
> The Perl 5 Module NON-List Maintained by No One <No.One@no.where>
> ========================== $Revision: -3.14 $$Date: 2095/13/33 25:61:-1 $

I'm thinking of posting it instead of mine. Maybe more people will read it!

Tim.

(I was still laughing driving home yesterday :-)