[Cascavel-pm] Atributos

Marcia Henke mhenke em inf.ufrgs.br
Terça Fevereiro 25 14:32:52 CST 2003


Olá pessoal,

estou tendo um probleminha com o código que estou implementando.
Eu ainda não entendi, como o Perl se comporta quando trabalhando orientado a 
objeto. 
Tenho o pacote LogManager.pm :
package LogManager;
my %month = ();
sub new {
  my $type = shift;
  my $self = {};
  readNameFile();
  $self->{month} = \%month;
  bless $self;
  return $self;
}
sub readNameFile {
  open (FILE, "< /home/monitor/novo/nameFile.dat") or die "Impossível abrir 
nameFile.dat:$!";
  while (<FILE>) {
    chomp;
    ($value, $name) = split(" ", $_, 2);
    if ($value) {
      $month{$value} = $name;
    }
  }
  close (FILE);
}
sub getName {
  my ($this, $value) = @_;
  $value = $_[1];
  return $month{$value};
}
1;
####################
Tenho um pacote de controle ServerController.pm:
package ServiceController;
use LogManager;
@ISA = ("LogManager");
$objLog = new LogManager();
sub new {
  my $type = shift;
  my $self = {};
  bless $self;
  return $self;
}
####################
E uma classe Principal (teste.pl) que contém minha Lógica, onde estou testando 
alguns metodos e estou tendo retorno "vázio":

#!/usr/bin/perl -I/home/monitor/novo

$valueSERVICES = ServiceController->getValue($flagFileSERVICES);
print "$valueSERVICES\n"; 
$file1 = ServiceController->getName($valueSERVICES);
print $file1 . "\n";


O problema é que não consigo obter o nome do arquivo, pois pelo que entendi 
quando chamo métodos herdados de outros pacotes como o getName(), que é do 
LogManager.pm, que é herdado pelo ServiceController.pm ele se perde e não acha 
o valor e nome que são atributos do pacote.
Como trato isso em perl.
Espero ter conseguido me expressar.
Agradeço atenção e toda ajuda é bem vinda
Márcia













Mais detalhes sobre a lista de discussão Cascavel-pm