Parece que estoy teniendo muchos problemas para hacer mi primer y simple paquete (en realidad es mi primer período de paquete). Estoy haciendo todo lo que debería estar haciendo (creo) y todavía no está funcionando. Aquí está el paquete (supongo que se le puede llamar un módulo):Creación de paquetes con Perl
package MyModule;
use strict;
use Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT =();
@EXPORT_OK = qw(func1 func2);
%EXPORT_TAGS = (DEFAULT => [qw(&func1)],
Both => [qw(&func1 &func2)]);
sub func1 { return reverse @_ }
sub func2 { return map{ uc }@_ }
1;
ahorré este módulo como MyModule (sí, se guarda como un archivo .pm) en Perl/site/lib
(aquí es donde todos mis módulos que no están incorporados se almacenan). A continuación, he intentado usar esta posada módulo de un script de Perl:
use strict;
use warnings;
my @list = qw (J u s t ~ A n o t h e r ~ P e r l ~ H a c k e r !);
use Mine::MyModule qw(&func1 &func2);
print func1(@list),"\n";
print func2(@list),"\n";
puedo guardar esto como my.pl
. Luego ejecutar my.pl
y sale este error:
Undefined subroutine &main::func1 called at C:\myperl\examplefolder\my.pl line 7.
Por favor alguien puede explicar por qué sucede esto? ¡Gracias por adelantado!
Nota: Sí mis ejemplos eran de Perl Monks. Ver the Perl Monks "Simple Module Tutorial". ¡Gracias tachyon!
Se recuperó porque la pregunta no tenía sentido con el 'Mine :: MyModule' cambiado a' MyModule' – Zaid