The Perl Geek Code
Modifiers
- @
- $
- >
- ()
- 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
Generic
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 CGI |
|
| 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 DBI |
|
| 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 XML |
|
| 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? |
Community
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 |
Environment
OL Other Languages |
|||||||||||||||||||
Sub Categories
|
|||||||||||||||||||
| 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
|
|||||||||
| 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
u UNIX |
|||||||||||
Sub Categories
|
|||||||||||
| 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
|
|||||
| 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! | ||||