Ya existe una standard Config module, así que elija un nombre diferente.
Digamos que tiene MyConfig.pm
con el siguiente contenido:
package MyConfig;
our $Foo = "bar";
our %Baz = (quux => "potrzebie");
1;
A continuación, otros módulos podrían usarlo como en
#! /usr/bin/perl
use warnings;
use strict;
use MyConfig;
print "Foo = $MyConfig::Foo\n";
print $MyConfig::Baz{quux}, "\n";
Si no desea calificar totalmente los nombres, a continuación, utilizar el módulo estándar Exporter en su lugar.
Añadir tres líneas de MyConfig.pm
:
package MyConfig;
require Exporter;
our @ISA = qw/ Exporter /;
our @EXPORT = qw/ $Foo %Baz /;
our $Foo = "bar";
our %Baz = (quux => "potrzebie");
1;
Ahora, el nombre completo del paquete ya no es necesario:
#! /usr/bin/perl
use warnings;
use strict;
use MyConfig;
print "Foo = $Foo\n";
print $Baz{quux}, "\n";
Se podría añadir un solo lectura escalares a MyConfig.pm
con
our $READONLY;
*READONLY = \42;
Esto está documentado en perlmod.
Después de añadirlo a @MyConfig::EXPORT
, puede intentar
$READONLY = 3;
en un módulo diferente, pero obtendrá
Modification of a read-only value attempted at ./program line 12.
Como alternativa, se puede declarar en MyConfig.pm
constantes utilizando el constant módulo y luego exportar esos.
En lugar de heredar de 'Exporter', puedes simplemente agarrar su método de 'importación', que es todo lo que realmente necesitas. p.ej. 'use Exporter 'import';' – friedo