2010-12-29 10 views
2

Ich habe ein Perl-Modul, das die Werte einiger globaler Variablen auf konstant setzt. Ich muss den Wert dieser globalen Variablen auf einen Wert setzen, der mir nur verfügbar ist, wenn ich das neue() aufruft.Einstellung des globalen Variablenwertes in Perl

Kann ich es irgendwie erreichen?

Antwort

3

Sie verwenden our, um eine Variable als global zu deklarieren. Sie können dann von anderen Stellen im selben Paket darauf zugreifen, wenn sie es auch als eine our Variable in ihrem lexikalischen Geltungsbereich deklarieren. Außerhalb des Pakets können Sie nur mit einem Paket :: Präfix darauf zugreifen.

Beispiel:

package Foo; 
use strict; 
use warnings; 

sub new { 
    our $bar = $_[1]; 
    return bless {}, $_[0]; 
} 

sub get_bar { 
    our $bar; 
    return $bar; 
} 
1; 

In einer anderen Datei:

use strict; 
use warnings; 
use Foo; 
my $foo = Foo->new('baz'); 
print "This is baz: ", $foo->get_bar, "\n"; 
print "So is this: ", $Foo::bar, "\n"; 
Verwandte Themen