Actuellement, je fais un nouveau module et je me demandais comment mettre en œuvre dans mon module 2 choses.Comment lire les arguments passés au constructeur et les arguments passés par `use Module` en Perl?
On voit souvent le use
comme:
use My::Module qw(something);
par exemple:
use CGI::Carp qw(fatalsToBrowser);
La première question est, comment puis-je récupérer, je veux dire wether le l'utilisateur a spécifié quelque chose et ce il a spécifié?
deuxième question est, Comment puis-je passer et lire les args directement sur le constructeur comme ceci:
mon mon_module de $ = Mon :: Module-> nouveau (arg1, arg2, arg3)
AS demandé sur le commentaire du code simple test du module:
package My::Module;
# $Id$
use strict;
use Carp;
sub new {
my $class = shift;
my $self = {};
$self->{ARG1} = undef;
$self->{ARG2} = undef;
$self->{ARG3} = undef;
$self->{ARG4} = undef;
bless($self,$class);
return $self;
}
sub arg1 {
my $self = shift;
if (@_) { $self->{ARG1} = shift }
return $self->{ARG1};
}
sub arg2 {
my $self = shift;
if (@_) { $self->{ARG2} = shift }
return $self->{ARG2};
}
sub arg3 {
my $self = shift;
if (@_) { $self->{ARG3} = shift }
return $self->{ARG3};
}
sub arg4 {
my $self = shift;
if (@_) { $self->{ARG4} = shift }
return $self->{ARG4};
}
sub dump {
my $self = shift;
require Data::Dumper;
my $d = Data::Dumper->new([$self], [ref $self]);
$d->Deepcopy(1);
return $d->Dump();
}
1; # so the require or use succeeds
La deuxième partie de votre question n'est pas entièrement claire pour moi. Pourriez-vous reformuler, ou éventuellement inclure du vrai code, des choses que vous avez essayées et qui n'ont pas fonctionné comme prévu, etc? – rafl
Je n'ai rien essayé car je ne sais pas comment je le lis dans ce cas sur le constructeur. Tout ce que j'ai est un module de test simple que j'ai fait pour tester ceux-ci je vais mettre à jour avec le code. – Prix