Seven Levels of Perl Mastery
- Thinks CGI and Perl are interchangeable terms.
- Still thinks Perl looks like bad C code viewed over a noisy
- Is insecure about the concept of dollar signs.
- Thinks Perl should be more like sh or tcl.
- Has heard of the `Unix mindset', but hopes it's a treatable
- Can't figure out how to read input from the keyboard.
- Thinks regular expressions are somebody cursing.
- Wonders why no one can give him a straight answer about
whether Perl is compiled or interpreted.
- Has begun to learn about $_ - and doesn't like it a bit.
- Thinks -w flag is a waste of time.
- Thinks Perl should be more like C++ or Java.
- Is still trying to figure why Perl has two different kinds of
- Knows how to use perlbug, but sends in bogus bug reports.
- Has been bitten by implicit context conversions, but hasn't
caught on yet.
- Can't keep == separate from eq, and thinks that + should
- Thinks Perl is just for text processing.
- Uses the Perl debugger.
- Has used other people's modules.
- Wonders what an object is.
- Knows their way around CPAN.
- Knows the difference between local and my.
- Uses <DATA>.
- Is still trying to figure what references are for.
- Thinks Perl should be more like scheme or eiffel.
- Submits real bug reports with perlbug.
- Write JAPHs to impress their friends and annoy their
- Begins all programs with use strict.
- Thinks Perl should just be Perl.
- Has taken enough advantage of cryptocontext to annoy
- Knows how to create records and objects with hash refs.
- Uses syscall to get at undocumented operating system
- Curses the flexibility of the Perl object system.
- Uses /e in substitutes.
- Has begun to wonder what typeglobs are for.
- Has written their own modules in Perl.
- Begins to look at all data in terms of regular
- Understands why regexes can't match nested data.
- Rewrites minor utilities in Perl.
- Writes games in Perl.
- Has written extension modules in C.
- Uses AUTOLOAD and closures in curious ways.
- Appreciates the aethetics of the Schwartzian Transform.
- Delights in the flexibility of the Perl object system.
- Has written their own pod2XXX translator.
- Understands the output from Perl -Dflags.
- Accesses the Perl symbol table directly.
- Submits bug reports with working patches.
- Edits files using a special Perl-embedded version of vi or
- Has contributed modules, manpages, and tools to the standard
- Can answer any Perl question instantly.
- Can write anything in Perl - and does.
- Takes advantage of undocumented language features.
- Writes code that gives even Larry pause.
- Implements opaque objects and compiled regexes using
- Can read and understand the output of the perl-to-C
- Embeds Perl interpreters in larger applications.
- Has written their own -d:debugger module.
- Used object-oriented programming before it existed.
- Is debating taking their turn (again?) with the patch
- Is on a first-name basis with Larry's wife.
- Has written or rewritten major areas in the Perl compiler or
- Is thinking about rewriting the regex engine, the memory
allocator, or the garbage collector.
- Doesn't write games in Perl, because they realize that Perl
itself is the game.