Sitter och skriver perlmoduler då jag påminns om en grundläggande sak i språket. BEGIN, INIT, CHECK och END direktiven som styr när kod ska exekveras i ett perlskript.
Läs mer här men för en kort sammanfattning så körs kodblocket BEGIN först av allt, sedan UNITCHECK, CHECK, INIT och END.
Lite tydligare exempel.
#!/usr/bin/perl
BEGIN { print ++$c." Den här koden körs först\n"; }
CHECK { print ++$c." Sedan körs den här koden\n"; }
INIT { print ++$c." Någonstans i mitten körs detta\n"; }