XML, the Perl Way

The Perl Geek Code


For this variable, said trait is not very rigid, may change with time or with individual interaction. For example, Geeks who do a lot of CGI for their job but really don't like it might choose to list themselves as : C++@ (actually C++@$, see below)
Indicates that this particular category is done for a living. For example, o+++$ indicates that the person won the OPC and gets paid for their obfuscations. If you are a professional Perl programmer just add this to the first field (P) and to the main areas you work in, like CGI, Sysadmin...
for 'wannabe' ratings. Indicating that while the geek is currently at one rating, they are striving to reach another. For example, c+++>++++ indicates a core developer who volunteers to be a pumpkin (not that this likely to happen...).
for indicating "cross-overs" or ranges. Geeks who go from C+ to C--- depending on the situation (i.e. mostly "C+") could use C+(---). @ is different from () in that () has finite limits within the category, while @ ranges all over


P Perl Programmer Stage

See Seven Stages of a Perl Programmer for the detailed explanations of what the various levels.

P* Wizard
P++++ Guru
P+++ Hacker
P++ Adept
P+ User
P Initiate
P- Novice

Perl Development

c Core Hacker

c* I am Larry Wall
c+++ I am or I have been a pumpkin
c+++ I am a core developer
c++ At least 3 of my patches made it into Perl
c+ I once had a patch
c I post on p5p
c- I read p5p
c-- I don't read p5p
c--- I sure don't want to mess with Perl development
c! I refuse to participate anymore in the mess that p5p has become
c? What is p5p?

P6 Perl 6

P6* I am a Language Designer for Perl 6
P6++++ I attended the Meeting where Perl 6 was decided
P6+++ I am a Perl 6 Working Group Chair
P6++ I wrote at least one Perl 6 RFC
P6+ I submitted at least one refused RFC for Perl 6
P6 I subscribed to at least one of the Perl 6 mailing lists
P6- I am not really interested in Perl 6, I'll deal with it when I see it
P6-- I still use Perl 4 here, limme alone!
P6--- I don't _want_ a Perl 6
P6! Isn't Perl 6 called Python?
P6? Perl 6? There is going to be a Perl 6? Cool!

Perl Skills

R Regular Expressions

R++++ I am Ilya or Jeff Friedl
R+++ I use ??{}, and ?
R++ I use ///e and I know the difference between //m and //s
R+ I understand "Death to DotStar" and when I have to use \1 instead of $1
R I use regular expressions quite often but I am always a little uncomfortable with them
R- why can't you do tr/&/&/ ?
R-- regular expressions is a fancy name for line noise
R! I don't need no stinkin' regular expression, all of my data is XML
R? Regular Expressions? What the Heck is a Regular Expression?

M Modules

M++++ I am Damian Conway
M+++ Some of my modules are part of the core distribution
M++ I have one or more module on CPAN
M+ I write my own modules and use them as much as I can
M I use modules from CPAN
M- I only use modules from the core distribution
M-- I don't like modules and I don't use them
M! I only write one-liners anyway
M? Modules?

O Objects

O++++ I am Damian Conway
O+++ I have written a large application with OOP
O++ I have written an OOP module and know what @ISA is for
O+ I have written an OOP module, but never used inheritence
O I have used other people's OO modules
O- I've heard of OOP and would like to learn it someday
O-- I've heard of OOP and think its a joke
O--- I've never heard of OOP or don't understand OOP
O! I am Tom Christiansen
O? What? You mean Perl can be OO?

MA Map

MA++++ I am Erudil or Randal Schwartz, I (ab)use map
MA+++ I use map as often as I can, including in void context, on purpose, and I know who will flame me for that
MA++ I use map quite often and I understand the Schwartzian transform
MA+ I often try to use map, but as soon as I have a problem in the code I replace it with a foreach
MA I know the difference between map and grep... in theory
MA- I read the description of map a while ago and my head still hurts!
MA-- Is map one of those obscure functions no one actually uses?
MA! Sure I can use a map, it's just that I can't seem to be able to fold it back

E Eval

E++++ I am Erudil, 'nuff said
E+++ I use eval in AUTOLOAD methods to generate methods dynamically
E++ I use eval to generate subroutines dynamically
E+ I use eval and @! to catch exception
E I use eval every now and then
E- I know the difference between eval "string" and eval { block }
E-- I know that eval "string" and eval { block } are different and I avoid both
E--- eval is insecure, I don't use it
E! My company's coding standards don't allow me to use eval

PU Pack/Unpack

PU++++ I use pack and unpack to speedup my sort routines
PU+++ A good JAPH (like mine) _must_ use pack
PU++ I use pack and unpack enough so that I never have to look at the doc
PU+ I use pack and unpack, of course!
PU I use pack and unpack, I just need to read the doc carefully each time I do
PU- I try to avoid pack and unpack, I don't feel real confident with them
PU-- pack and unpack? I thought they were deprecated!
PU! I pack and unpack my suitcase

BD Bondage & Discipline

BD* I use Python for all serious code
BD+++ I use Class::Contract
BD++ I use pseudo-hashes to avoid auto-vivification
BD+ I refuse to use AUTOLOAD
BD I use -w and strict for anything but one-liners
BD- I use strict but warnings are a pain
BD-- strict? -w? Yeah right!
BD! I only write one-liners anyway


C* I gave up on CGI.pm a long time ago and use Apache::Request nowadays
C++++ I am Lincol Stein
C+++ I write (good) books about CGI and Perl
C++ I use CGI.pm, the Template Toolkit and HTML::Parser
C+ I use CGI.pm and the taint mode
C I use CGI.pm but I am not that sure my scripts are secure
C- CGI is best done with print and parsing CGI queries by hand
C-- I try to avoid doing CGI at all costs
C--- What's that CGI thingie anyway?
C! My company won't do CGI, it is not secure


D++++ I am Tim Bunce
D+++ I have written a DBD
D++ I have used DBI with at least 2 DBD's in the same program
D+ I have used DBI with at least 2 DBD's
D I use DBI always with the same data base
D- DBI? The mySQL/Oracle modules work fine for me thank you
D-- Why should I use DBI, flat files work fine for me
D! I don't need no stinkin' data base!

S Sysadmin

S* I am Evi Nemeth, I don't need perl. *nix does what I want. period
S++++ I am David Blank-Edelman, I can use perl to do anything the system can do
S+++ I wrote the perl that automates all our system tasks
S++ I wrote some perl to check the logs and quotas and other daily maintenance
S+ I fixed the previous perl code after upgrading perl to 5.6, but didn't understand everything there
S I use perl to do daily maintenance
S- I know where the logs are, why do i need perl?
S-- I think i installed that, don't remember why...
S--- I'm sorry, where's the `on' button?


X++++ I am Matt Sergeant or Clark Cooper
X+++ I have writen at least one of the CPAN XML modules
X++ I can tell how XML::DOM differs from XML::Twig and I use both
X+ I use XML::Simple or XML::PYX
X XML... that's on my TODO list
X- Yeah I know, XML is great, but why is it such a pain to use?
X-- I HATE XML, it is a creation of the evil empire to destroy us all, I am Jon Barger
X! We don't need no stinkin' XML, we got Data::Dumper!
X? I have lived in a cave for the last 3 years, what is XML?


WP Perlmonk

WP++++ I am Tim Vroom or merlyn
WP+++ I am a Saint
WP++ I am an Abbot or above
WP+ I have my picture on my homenode
WP I Can't vote yet, but I will soon
WP- I am not interested in Perl Monks
WP-- I am Princepawn
WP! Perl Monks promotes idolatry and adoring a false god. Down with Perl Monks!
WP? What is PerlMonks?

MO Perl Monger

MO++++ I am brian d foy
MO+++ I founded and/or head a Perl Monger group or I am David H. Addler
MO++ I participate in at least 2 Perl Monger groups
MO+ I go to Perl Monger reunions
MO I am subscribed to a Perl Monger mailing list but I don't go to meetings
MO--- Me hangin' out with geeks? I don't need no stinkin' Perl Mongers
MO! There is no Perl Mongers group in my area
MO? What is a Perl Monger?

PP #perl

PP++++ I am a #perl op
PP+++ I am a #perl regular
PP++ I answer questions (correctly) on #perl
PP+ I post questions on #perl
PP I occasionally visit #perl
PP- I have been berated on #perl
PP-- I am banned from #perl
PP! I don't use IRC
PP? What is IRC?

n Usenet

n++++ I am a moderator of c.l.p.moderated
n+++ Not only do I post on all 3 c.l.p.m groups, I also monitor c.l.python!
n++ I read and post on all 3 c.l.p.m groups
n+ I read regularly c.l.p.m groups
n I read occasionally c.l.p.m groups
n- I rarely read c.l.p.m groups
n! I have given up on usenet in general and the c.l.p.m groups, they're useless
n? What is usenet?

CO Conferences

CO++++ I am Nat Torkington, Kevin Lenzo, Leon Brocard or Damian Conway
CO+++ I have won a prize at TPC or YAPC (but I am NOT Damian Conway)
CO++ I have given tutorials at TPC or YAPC
CO+ I have given talks at TPC or YAPC
CO I have attended at least 3 TPC or YAPC
CO- I have attended at least once TPC or YAPC
CO-- I have never attended TPC or YAPC, my company won't let me go
CO! I have never attended TPC or YAPC, and I have no desire to ever do so
CO? TPC, YAPC what's that?

Typically Perl

PO Perl Poetry

PO* Some features of Perl were designed so I could write Perl Poetry
PO++++ I wrote Coy or I am Kevin Meltzer
PO+++ I have been a judge in a Perl Poetry (or Haiku) contest
PO++ I have won a Perl Poetry (or Haiku) contest
PO+ I have participated in a Perl Poetry or Perl Haiku contest
PO I have posted Perl Poetry on PerlMonks, c.l.p.m or on my website
PO- I don't write Perl Poetry but I like reading it or I use Coy.pm occasionnally
PO-- Some people have _way_ too much time on their hands
PO! Do I look like I would enjoy poetry?

o JAPH/Obfuscation

o++++ I am Randal Schwartz, I won the OPC, I am BooK, Abigail or Erudil
o+++ I participated in the OPC, I posted obfuscations on PerlMonks that have over 20 in rep
o++ I use a JAPH
o+ I wrote a JAPH but it is so pathetic I never use it
o Obfuscation is cool, I'm just not good at it
o- Obfuscation gives Perl a bad rep
o! I HATE obfuscation
o? What is a JAPH?

G Goof

G* I am Larry Wall
G++++ I am Damian Conway, Michael Schwern or I have a Camel tatoo somewhere on my body
G+++ I won a White Camel Award
G++ I write programs that are valid in at least 2 languages including Perl
G+ I play Perl golf regularly
G Perl is fun, I try not use the most exotic features though, someone will have to maintain my code some day
G- I _never_ use $_
G-- My Perl code looks just like C, I stay away from constructs that can't be found in other languages
G! I use Perl strictly for work, it's just another language

A Abuse/Glue

A++++ Don't call my Perl OS a POS
A+++ I'm writing device drivers in Perl
A++ I'm writing a virtual machine in Perl (POE, Object Server, Turing-capable interpreter)
A+ I'm working on Inline.pm
A I've written code that someone compiled to bytecode
A- Writing portable code is hard enough
A-- You guys scare me
A--- I'm still trying to figure out anonymous functions
A! I read part of Slash code and switched to Python


OL Other Languages

Sub Categories
CC C++
J Java
P Python
R Ruby
S Smalltalk
L Lisp
A Assembly
OL* I am the creator of the language
OL+++ I _LOVE_ this language, way more than Perl
OL++ I use this language quite often and I like it as much as I like Perl
OL+ I use this language every now and then, it's OK but Perl still rules
OL- I have to use this language, it does not mean that I like it
OL-- I try to avoid using this language as much as I can
OL--- I _HATE_ this language, I will never use it
OL! I only use Perl anyway

Ee Emacs

Ee+++ Emacs is my login shell!! M-x doctor is my psychologist! I use emacs to control my TV and toaster oven!
Ee++ I know and use elisp regularly!
Ee+ Emacs is great! I read my mail and news with it!
Ee Yeah, I know what emacs is, and use it as my regular editor.
Ee- Emacs is too big and bloated for my tastes
Ee-- Emacs is just a fancy word processor
Ee--- Emacs sucks! vi forever!!!
Ee---- Emacs sucks! pico forever!!!
Ee! Emacs sucks!
Ee? What is Emacs?

Ev Vi

Ev* I am Bram Moolenaar
Ev+++ I write patches from time to time
Ev++ I write my own scripts to change behavior
Ev+ I can open multiple files and use shell escapes effectively
Ev I know how to do complex find/replaces (even using % instead of 1,$)
Ev- I can open a file and save and quit
Ev-- How do I start inputing text?
Ev--- How is vi visual?
Ev---- vi sucks, emacs forever!!!
Ev! vi sucks
Ev? vi?

Eo Other Editor

Sub Categories
n Notepad
t Textedit
b BBEdit
a Alpha
Eo++++ I wrote this editor
Eo+++ I only use this editor to edit my Perl code
Eo++ this editor is my favorite editor
Eo+ I am happy to use this editor when I work on a machine that has it
Eo I use this editor when I really have to
Eo- this editor is a piece of crap and I try real hard to avoid using it
Eo! I refuse to use this editor

Operating System


Sub Categories
L Linux
S Sun OS/Solaris
o An Other Unix
u* I am the author of the OS
u+++ I use this OS all the time, I know it inside out
u++ this OS is my main OS and my favorite
u+ I use this OS amongst others
u I use this OS amongst others
u- I have to use this OS but I don't really like it
u! Why would I care about this OS?

w Windows

w* I am Bill Gates or Gurusami Sarathy
w+++ I work for Activestate
w++ I only use Windows, Windows Rul3z
w+ I mostly use Windows, I like it
w Windows, Unix, whatever, I write portable Perl anyway
w- I'd like to avoid Windows but I have to work with it sometimes
w-- It's such a shame I still need to boot Windows for games
w--- Windows? I read Slahsdot, 'nuff said
w! I might have to peel carrots all day but at least I don't have to do no Windows

m MacIntosh

m* I am Steve Wozniack, Mathias Neubacher or Chris Nandor
m+++ I use MacPerl all the time, I love droplets!
m++ I use MacPerl quite often
m+ I have installed MacPerl but I use it mostly to check that my code is really portable
m I have installed MacPerl but I don't use it much
m- I installed MacPerl but could never make much sense of it
m! Gimme back my command line!

os Other OS

Sub Categories
A Amiga
os++++ I wrote this OS!
os+++ I wrote the Perl port for this OS!
os++ this OS rules!
os+ I quite like this OS
os I occasionnaly use this OS
os- I try to avoid using this OS, frankly it sucks!
os! I HATE this OS! It sucks so bad!