1. Learn Perl
  2. optional: Learn Ninjitsu
  3. Start reading lots of Perl scripts
  4. Start writing your very own Perl scripts
  5. When you have become proficient at step 3, figure out how to re-write your scripts in at least 2 other ways while still producing the same output
  6. Stumbit one of your Perl scripts to the Perl Obfustication Contest. If it doesn't win, start over.
  7. Write at least 3 Perl "scripts" of at least 10000 lines of code. If you want you can put some of that code into modules.
  8. bonus step: pat your head and rub your tummy. Pass Go and collect 200 dollars.
  9. Learn perl's various database interfaces if you haven't already and write various scripts that do uncanny things with databases.
  10. Ok. This is the most important step. Start calling yourself a perl ninja. Write everything you code in perl. Preach of the wonders of perl to all your friends (or aquiantances if you've lost all your friends).


Congratulations my friend, you are now a fully-fledged Perl Ninja



Someone can probably figure out a better way to do this... and in fewer steps... or maybe one of you now fully trained perl ninjas can write an AI to figure it out for me.. if so node it.
What is really critical is to know, use, love and cherish the whole menagerie:
$_ $, $. $; $@ and all their buddies
Sneer at users of English.

Also, learn CPAN. Anything can be solved by exactly one page of code, if that code is written on top of CPAN.

Use zero-width assertions in your regular expressions. If you are just using the egrep subset, you are not a ninja yet.

Use defaults as if every keystroke cost you one drop of blood.

  1. Write subs that modify their arguments via direct modification of @_.
  2. The Perl constructs for looping are called map and grep. Nesting them is encouraged, as long as one of the levels uses $_ as the loop variable. Recursion is also useful.
  3. However, while and for may still be used as statement modifiers (perl -wle 'print for (1..10)').
  4. do may be freely used. As long as it isn't paired with while.
  5. The Perl constructs for conditional execution are || and &&. Both may freely be mixed with and and or if doing so saves parentheses.
  6. if is permissible only as a statement modifier.
  7. unless is permissible either as a modifier or if an else is included. But obviously not both.
  8. $x, @x, %x, &x and X are all different; if you use one, you must use them all.
  9. Regular expressions.
  10. Use prototypes to make your subs more like builtins. Then use &sub to override this behaviour.

Log in or register to write something here or to contact authors.