[Cascavel-pm] Instanciando um objeto...
Ednardo Lobo
ednardo em elobo.cjb.net
Segunda Janeiro 20 08:44:09 CST 2003
Oi Márcia!!
Você esqueceu um pequeno detalhe, a última instrução em um pacote
deve retornar um valor logicamente verdadeiro. No caso do seu pacote, a
última instrução 'my %flags = ()', retonará um valor falso, porque você
está atribuindo um valor indefinido (logicamente avaliado como falso).
Simplesmente acrescente a linha de código '1;' após a última instrução
em seu pacote e nenhum erro será mais reportado.
Abraços,
On Mon, Jan 20, 2003 at 10:07:52AM -0200, Marcia Henke wrote:
> Olá pessoal !!
>
> Estou usando perl 5.6.1, em um SO SuSE7.3.
> Estou com um pequeno problema na instanciação do meu objeto tipo
> hashes. Criei um pacote ServicesStatus.pm e quero intanciá-lo, mas
> estou tendo o seguinte erro:
>
> ServicesStatus.pm did not return a true value at ./instanciaHashes.pl
> line 3.
> BEGIN failed--compilation aborted at ./instanciaHashes.pl line 3.
>
> Meu pacote .pm inicia da seguinte forma :
>
> package ServicesStatus;
>
> my %flags = ();
>
> sub new {
> my $type = shift;
> my $self = {};
> _readStatusFile();
> $self->{status} = \%flags;
> return bless $self, $type;
> }
>
> sub _readStatusFile {
> open (FILE, "< services.dat") or die "Impossível abrir services.dat:$!";
> while (<FILE>) {
> chomp;
> ($key, $value) = split(" ", $_, 2);
> if ($key && $value) {
> $flags{$key} = $value;
> }
> print "O valor da chave $key é $value.\n";
> }
> close (FILE);
> }
>
> E a classe de instancia é um .pl que esta implementado da seguinte
> forma : #!/usr/bin/perl -w
>
> use ServicesStatus;
>
> my $obj = new ServicesStatus();
>
> O que estou fazendo errado ???
>
> Agradeço a atenção
> Márcia
--
Ednardo Lobo - www.elobo.cjb.net
Mais detalhes sobre a lista de discussão Cascavel-pm