Al momento de depurar errores en scripts Perl puede ser necesario determinar qué módulos están cargados en memoria.



Perl provee una variable llamada %INC la cual contiene información acerca de los módulos que han sido cargados en memoria por el proceso actual en ejecución.

La forma más simple de visualizar el contenido de esta variable es utilizando el módulo Data::Dumper de la siguiente forma:

#!/usr/bin/perl

use Data::Dumper;

print Dumper(\%INC);
print "\n";

La ventaja de esta variable es que, además de mostrar el nombre del módulo cargado, muestra las rutas los archivos en disco:

emi@vaio:/tmp$ ./test.pl 
$VAR1 = {
          'Exporter.pm' => '/usr/share/perl/5.28/Exporter.pm',
          'XSLoader.pm' => '/usr/share/perl/5.28/XSLoader.pm',
          'Carp.pm' => '/usr/share/perl/5.28/Carp.pm',
          'overloading.pm' => '/usr/share/perl/5.28/overloading.pm',
          'strict.pm' => '/usr/share/perl/5.28/strict.pm',
          'constant.pm' => '/usr/share/perl/5.28/constant.pm',
          'bytes.pm' => '/usr/share/perl/5.28/bytes.pm',
          'Data/Dumper.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.28/Data/Dumper.pm',
          'warnings/register.pm' => '/usr/share/perl/5.28/warnings/register.pm',
          'warnings.pm' => '/usr/share/perl/5.28/warnings.pm'
        };

Esto puede ser de especial utilidad al momento de resolver problemas de inclusión de módulos y rutas.

Ahora bien, el propio uso del módulo Data::Dumper hace que se incluyan módulos adicionales como dependencias. Si se desea conocer exactamente cuáles son lo módulos incluidos por el script actual sin las dependencias de Data::Dumper, será necesario volcar la variable de otra forma:>/p>

#!/usr/bin/perl

use strict;
use warnings;

print join "\n", %INC;
print "\n";

Ahora se observa que por defecto no se incluye ningún módulo. En este caso sólo "strict" y "warnings", tal como se ha especificado a modo de ejemplo:

emi@vaio:/tmp$ ./test.pl
strict.pm
/usr/share/perl/5.28/strict.pm
warnings.pm
/usr/share/perl/5.28/warnings.pm


Tal vez pueda interesarte


Compartí este artículo