1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| package SiteEnv;
use warnings;
use strict;
use Carp;
# Stockons toutes les données nécessaires de tous les sites
my %DATA_ENV = (
site1 => {
var1 => 'valeur1',
var2 => 'valeur2',
var3 => 'valeur3',
var4 => 'valeur4',
},
site2 => {
var1 => 'toto1',
var2 => 'toto2',
var3 => 'toto3',
var4 => 'toto4',
},
site3 => {
var1 => 'varsite1',
var2 => 'varsite2',
var3 => 'varsite3',
var4 => 'varsite4',
},
);
# Constructeur de la classe SiteEnv
sub new {
my ( $classe, %ref_arguments ) = @_;
# VÚrifions la classe
$classe = ref($classe) || $classe;
# Création de la référence anonyme é un hachage vide (futur objet)
my $this = {};
unless ( exists $ref_arguments{site} ) {
croak("Vous devez preciser un site\n");
}
$this->{site} = $ref_arguments{site};
# Liaison de l'objet Ó la classe
bless( $this, $classe );
return $this;
}
sub get_variable {
my ($this, $argument) = @_;
if ( exists $DATA_ENV{ $this->{site} }{$argument} ) {
return $DATA_ENV{ $this->{site} }{$argument};
}
else {
croak("La variable $argument n'existe pas\n");
}
return;
}
1; |
Partager