Estuve revisando el código del módulo y bueno, aquí van mis conclusiones, que aclaro, son ajenas a las finalidades del autor del módulo, es decir, el autor de un módulo generalmente crea para dar solución a un problema, y quizás su problema tenía como solución crear algún tipo de gestor de sesiones similar a la forma en la que PHP las maneja:
1) La primera es, quizás fue creado por fines educativos, ya que no veo por qué competir con los módulos *::Session, que son mucho mejor elaborados y profesionales ( incluyendo el diseño/API ) que cualquiera hecho en PHP.
2) Faltó documentación, si los intentos de POD que vienen en los archivos de código fuente se toman como documentación, entonces falta aprender POD.
3) El código fuente esta muy pobremente legible, aquí van algunos ejemplos:
- a) Modificación directa del arreglo default ( @_ ) ( BAD! )
- Código: Seleccionar todo
if ($_ =~ /^([^=]+)=(?:\s*"([^"]*)"|\s*'([^']*)'|([^;]*))/) {if (!$_[1]) {$H{$stack}=+{$1=>$2\
,%{$H{$stack}}};}else{$H{$1}=[$2,@{$H{$1}}];}}
b) Uso de etiquetas cuando puede ser evadido.
c) Uso excesivo de eval en forma de bloque.
d) Muy mal estilo utilizado en el uso de expresiones regulares.
e) Uso de funciones poco portables, que pueden ser sustituidas por módulos existentes.
f) Ugh no se diga esto:
g) Sustituir Serialize.pm por Data::Dumper o Storable;
h) Session.pm usa variables globales de manera masiva.
i) MySql.pm es propenso a SQL Injection, es poco legible y no usa placeholders.
Amén.
Saludos,