C'è già un standard Config module, quindi scegliere un nome diverso.
Diciamo che hanno MyConfig.pm
con il seguente contenuto:
package MyConfig;
our $Foo = "bar";
our %Baz = (quux => "potrzebie");
1;
Poi altri moduli potrebbero usarlo come in
#! /usr/bin/perl
use warnings;
use strict;
use MyConfig;
print "Foo = $MyConfig::Foo\n";
print $MyConfig::Baz{quux}, "\n";
Se non si vuole qualificare completamente i nomi, quindi utilizzare il invece il modulo standard Exporter.
Aggiungi tre linee di MyConfig.pm
:
package MyConfig;
require Exporter;
our @ISA = qw/ Exporter /;
our @EXPORT = qw/ $Foo %Baz /;
our $Foo = "bar";
our %Baz = (quux => "potrzebie");
1;
Ora il nome completo del pacchetto è più necessario:
#! /usr/bin/perl
use warnings;
use strict;
use MyConfig;
print "Foo = $Foo\n";
print $Baz{quux}, "\n";
Si potrebbe aggiungere una sola lettura scalari per MyConfig.pm
con
our $READONLY;
*READONLY = \42;
Questo è documentato in perlmod.
Dopo aver aggiunto a @MyConfig::EXPORT
, si potrebbe provare
$READONLY = 3;
in un modulo diverso, ma si otterrà
Modification of a read-only value attempted at ./program line 12.
In alternativa, si potrebbe dichiarare MyConfig.pm
costanti utilizzando il constant modulo e quindi esportare quelli.
Invece di ereditare da "Exporter', puoi semplicemente prendere il suo metodo" import', che è tutto ciò di cui hai veramente bisogno. per esempio. 'usa 'importazione' Esportatore;' – friedo