Tengo problemas para entender cómo exportar un símbolo de paquete a un espacio de nombres. He seguido la documentación casi de manera idéntica, pero parece que no sé sobre ninguno de los símbolos de exportación.¿Cómo exporto un símbolo de paquete a un espacio de nombres en Perl?
mod.pm
#!/usr/bin/perl
package mod;
use strict;
use warnings;
require Exporter;
@ISA = qw(Exporter);
@EXPORT=qw($a);
our $a=(1);
1;
test.pl
$ cat test.pl
#!/usr/bin/perl
use mod;
print($a);
Este es el resultado de la ejecución que
$ ./test.pl
Global symbol "@ISA" requires explicit package name at mod.pm line 10.
Global symbol "@EXPORT" requires explicit package name at mod.pm line 11.
Compilation failed in require at ./test.pl line 3.
BEGIN failed--compilation aborted at ./test.pl line 3.
$ perl -version
This is perl, v5.8.4 built for sun4-solaris-64int
Pretty ancient Perl. Será mejor que actualices si puedes. – tsee
sistema heredado, estoy atascado con él – Mike
La versión corta de las respuestas a continuación ya se explica en TFM: http://p3rl.org/Exporter#Good_Practices – daxim