В настоящее время я делаю новый модуль, и мне было интересно, как я могу реализовать в своем модуле 2 вещи.
Мы часто видим use
вроде:
use My::Module qw(something);
например:
use CGI::Carp qw(fatalsToBrowser);
Итак, первый вопрос: как мне получить это, я имею в виду, указал ли пользователь что-либо и что он указал?
Второй вопрос: как передать и прочитать аргументы непосредственно в конструкторе следующим образом:
my $ my_module = My :: Module->new (arg1, arg2, arg3);
AS запросил в комментарии простой тестовый код модуля:
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