Perl es un maravilloso lenguaje para auxiliarnos en la administración de sistemas. En esta área, claro está, la alternativa lógica son los lenguajes de shell de Unix (Bourne, Korn, C-Shell y sus derivados). Estos lenguajes califican perfectamente como lenguajes de propósito general, y son suficientemente poderosos para llevar a cabo casi cualquier tarea sencilla. Sin embargo, al llegar a proyectos intermedios, rápidamente nos damos cuenta de la imposibilidad de llevarlos a cabo limpiamente: Las variables y funciones son globales, no existen ni siquiera las estructuras de datos básicas (y es bastante complejo implementarlas) y es muy difícil mantener un estilo de programación modular.